首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

一个怪有关问题,应该是技术有关问题

2012-02-20 
一个怪问题,应该是技术问题我使用delphi时出现了下面的一个问题,不知道这个情况哥们儿们见过吗。是这样的我

一个怪问题,应该是技术问题
我使用delphi时出现了下面的一个问题,不知道这个情况哥们儿们见过吗。是这样的我有两个double型的变量如下:
var
a1,a2,a3,a4:double;
begin
a1:=46.65;
a2:=45.6;
a3:=47.2;
a4:=46.15;
edit1.Text:=formatfloat( '0.0 ',a1-a2);   //应该为1.1,可结果为1.0,这是怎么了
edit2.Text:=formatfloat( '0.0 ',a3-a4);   //结果为1.1这是正确的
end;

以上是一个测试程序段,是因为我的类型定有不对还是什么原因,我认为这样的情况出现在财务软件上非同小可,希望高人指点一下。谢谢了。


[解决办法]
你又发一贴
别一个贴子已经回了
用Extended型变量
[解决办法]
浮点精度问题
[解决办法]
你在舍入的时候,没有作四舍五入处理.

edit1.Text:=formatfloat( '0.0 ',a1-a2+0.05); //因为你是保留一位小数,所以加0.05
edit2.Text:=formatfloat( '0.0 ',a3-a4+0.05); //
[解决办法]
Delphi的四舍五入和中国习惯是不同的,逢五时好像看上一位的单双决定是五入还是五舍.
[解决办法]
这样就可以了。
edit1.Text:=formatfloat( '0.0 ',a1-a2); //保留一位小数
edit2.Text:=formatfloat( '0.0 ',a3-a4); //

热点排行