编译器的问题???大家帮帮忙解释一下 ( 积分: 100 )

  • 主题发起人 主题发起人 kongkong
  • 开始时间 开始时间
K

kongkong

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button1Click(Sender: TObject);
var
f1,F2,f3,F4 : DOUBLE;
D1,D2 : DOUBLE;
begin
D1 := 10.95;
D2 := 12.1;
//-------------------------------
F1 :=StrToFloat(FloatToStr(D1 * D2));
F2 := D1 * D2;
F3 := 132.495 ;
F4 := 10.95 * 12.1;
//----------------------------------
ShowMessage(FormatFloat('0.00',F1));//132.50
ShowMessage(FormatFloat('0.00',F2));//132.49
ShowMessage(FormatFloat('0.00',F3));//132.50
ShowMessage(FormatFloat('0.00',F4));//132.50
ShowMessage(FloatToStr(f1)+ ' '+ FloatToStr(f2)+ ' '+ FloatToStr(f3)+ ' '+FloatToStr(f4));
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
f1,F2,f3,F4 : DOUBLE;
D1,D2 : DOUBLE;
begin
D1 := 10.95;
D2 := 12.1;
//-------------------------------
F1 :=StrToFloat(FloatToStr(D1 * D2));
F2 := D1 * D2;
F3 := 132.495 ;
F4 := 10.95 * 12.1;
//----------------------------------
ShowMessage(FormatFloat('0.00',F1));//132.50
ShowMessage(FormatFloat('0.00',F2));//132.49
ShowMessage(FormatFloat('0.00',F3));//132.50
ShowMessage(FormatFloat('0.00',F4));//132.50
ShowMessage(FloatToStr(f1)+ ' '+ FloatToStr(f2)+ ' '+ FloatToStr(f3)+ ' '+FloatToStr(f4));
end;
 
大家解释一下为什么F2的显示会和其他的不一样。
 
//1.你的问题很好, 这就是浮点数和整数运算的区别;
//2.你可以测试一下下面简单修改后的代码: 看看具体的内容有什么不同;
//3.如果你要满足你的类似整数计算的要求, 有个办法就是:
// 浮点数-->整数化-->处理结果-->浮点化

procedure TForm1.Button1Click(Sender: TObject);
var
f1,F2,f3,F4 : DOUBLE;
D1,D2 : DOUBLE;
begin
D1 := 10.95;
D2 := 12.1;
//-------------------------------
F1 :=StrToFloat(FloatToStr(D1 * D2));
F2 := D1 * D2;
F3 := 132.495 ;
F4 := 10.95 * 12.1;
//----------------------------------
ShowMessage(FormatFloat('0.000000000000000000',F1));//132.50
ShowMessage(FormatFloat('0.000000000000000000',F2));//132.49
ShowMessage(FormatFloat('0.000000000000000000',F3));//132.50
ShowMessage(FormatFloat('0.000000000000000000',F4));//132.50
ShowMessage(FloatToStr(f1)+ ' '+ FloatToStr(f2)+ ' '+ FloatToStr(f3)+ ' '+FloatToStr(f4));

end;
 
哈哈,天河流星兄的一个回答就解了我的迷惑。
真是非常感谢!
这个问题我已经找到了处理方法,但是并不是按照天河流星兄的第三点
浮点数-->整数化-->处理结果-->浮点化的方法。

我想请天河流星兄把这种处理写出来一下,谢谢
 
后退
顶部