一个关于format('%5.2f',[1.275])奇怪问题(10分)

  • 主题发起人 主题发起人 pingbaoshi
  • 开始时间 开始时间
P

pingbaoshi

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);
var str1:string;
m:double;
begin
m:=1.275;
Str1:=Format('%5.2f',[1.275]);
showmessage(str1);
Str1:=Format('%5.2f',[m]);
showmessage(str1);
end;

大家看看,结果为何不同哪?
一个1.27,一个1.28
 
m:=1.275;
Str1:=Format('%5.2f',[m]);
showmessage(str1);
Str1:=Format('%5.2f',[m]);
showmessage(str1);

你就不会这么写???
 
但是经过四舍五入,应该是1.28呀
[:)]
 
搞定!
你把 m:Double
改成 m:Extended
就正确了!
估计是因为Double的精度不够高,把 1.275 变成了某个略小于它的数.(但是我用 FloatToStr(m)
得到的是 1.275 估计是在转化为 Extended 的过程中被增大了)
 
多人接受答案了。
 
后退
顶部