简单:这个循环语句该怎么写?(50分)

  • 主题发起人 主题发起人 elsewhere
  • 开始时间 开始时间
E

elsewhere

Unregistered / Unconfirmed
GUEST, unregistred user!
5.000000E+0---------->5
7.380000E+1---------->73.8
0.000000E+0---------->0
3.500000E+1---------->35
5.105000E+4---------->51.05(这个是和单位换算相关)
类似数据如上左,我如何把它们转换成上右的格式?
 
d:Double;
d:=7.380000E+1;
然後你調試
d:=d+1;看看的d是什麼?奇怪嗎!
 
5.000000E+0---------->5
7.380000E+1---------->73.8
0.000000E+0---------->0
3.500000E+1---------->35

只要用FormatFloat("#.#########",7.380000E+1)就可把它转换成73.8(字符串)
 
to Richard3000
d:=d+1;
比如2.36000E+4,结果就是23601呀,这是数据类型优先的问题吧
 
to lexue
你的办法怎么不行呢?
双引号不行,两个单引号也不行:(
 
看不出有什么规律,可以解释一下这些数值的含义么?
 
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(FormatFloat('#.#########',7.380000E+1))
end;
 
to 叮叮当当
数据是一个文本文件中一部分数值,正想编程实现数据分离入库的一个小程序,
免去数据转换的麻烦。
目前进展中转换的数据基本就这几个类型的。
 
那 5.105000E+4 为什么是 51.05 而不是 51050?
 
strtofloat(FormatFloat('#.#########',7.380000E+1))
就可以了
 
procedure TForm1.Button1Click(Sender: TObject);
var
s:String;
f:Double;
begin
s:='5.105000E+4';
f:=StrToFloat(s);
ShowMessage(FloatToStr(f) );;
end;
 
樓主
左列是科學記數法表示的
a小數(一般0<a<=1,也可以不在這個範圍),b整數
aEb=a*(10*10...10) a乘以10的b次方
和右邊是一樣的結果.表示不同而已.就像$a和10一樣
d:Double;
7.380000E+1就是實數沒有數據轉換
 
thanks you all
 
后退
顶部