var
eData:Extended;
iData:integer;eData:=strtofloat('23.2')*100.0;
iData:= trunc(eData); //2320eData:=strtofloat('19360.7')*100.0;
iData:= trunc(eData); //1936069 ??????eData:=strtofloat('1.79')*100.0;
iData:= trunc(eData); //179
为什么第二项本应是1936070却变成1936069了呢?????????
遇到这种情况该怎么办?????
eData:Extended;
iData:integer;eData:=strtofloat('23.2')*100.0;
iData:= trunc(eData); //2320eData:=strtofloat('19360.7')*100.0;
iData:= trunc(eData); //1936069 ??????eData:=strtofloat('1.79')*100.0;
iData:= trunc(eData); //179
为什么第二项本应是1936070却变成1936069了呢?????????
遇到这种情况该怎么办?????
在这个例子中eData能得到1936070如果真的无法精确,这个问题该怎么解决?
经过trunc(eData)当然是1936069了,解决问题很多,可以加个0.5,trunc(eData+0.5),虽然说这个方法有点投机取巧!
改成
eData:Real;
或者
eData:Double;