为什么INT函数得出的结果不一样?(50分)

  • 主题发起人 主题发起人 denven
  • 开始时间 开始时间
D

denven

Unregistered / Unconfirmed
GUEST, unregistred user!
请大家看如下一段程序:
var
a:double;
begin
a:=606.235;
a:=int(a*100+0.5)/100;
end
运行得出的结果,有时为606.24,有时为606.23,请问这是为什么?
 
不知道你是如何显示运行的结果的,
我用ShowMessage(FloatToStr(a));
每次都是606.24.
 
procedure TForm1.Button1Click(Sender: TObject);
var
a:double;
begin
a:=606.235;
a:=int(a*100+0.5)/100;
ShowMessage(FloatToStr(a));
end;
和楼上兄弟一样,每次都是606.24
 
觉得你这样处理不会出现你这样的结果。取整后再除以100不会有问题的
 
请大家运行如下程序,正确结果应为4243.66,但我运行程序后结果却为4243.65
var
aaa:double;
begin
aaa:=(4874.9*0.15-125)*7+0.01;
showmessage(floattostr(aaa));
aaa:=int(aaa*100+0.5)/100;
showmessage(floattostr(aaa));
end;
 
精度问题
 
= 6243.655
6243.65
 
我刚才运行的结果为4243.66
 
后退
顶部