W
wghua
Unregistered / Unconfirmed
GUEST, unregistred user!
我在进行浮点运算如下:
FieldByName('WillPay').AsCurrency :=
FieldByName('BasePay').AsCurrency
+ FieldByName('LivePay').AsCurrency + FieldByName('AreaDiff').AsCurrency
+ FieldByName('JOBFEE').AsCurrency + FieldByName('BOUNTY').AsCurrency
+ FieldByName('TEMPPAY').AsCurrency + FieldByName('OTHERSPAY').AsCurrency;
X := FieldByName('WillPay').AsCurrency;
调试看到的结果X= 0.115,事实上也应等于0.115,
但用Trunc(X*(IntPower(10,i)) + 0.5)/IntPower(10,i))后结果是0。11,而不是0。12,
为什么?
用FloatToStr(FieldByName('WillPay').AsFloat)返回的值是0.114999999999998;
为什么?
我是想进行四舍五入操作,请问有什么办法解结?
FieldByName('WillPay').AsCurrency :=
FieldByName('BasePay').AsCurrency
+ FieldByName('LivePay').AsCurrency + FieldByName('AreaDiff').AsCurrency
+ FieldByName('JOBFEE').AsCurrency + FieldByName('BOUNTY').AsCurrency
+ FieldByName('TEMPPAY').AsCurrency + FieldByName('OTHERSPAY').AsCurrency;
X := FieldByName('WillPay').AsCurrency;
调试看到的结果X= 0.115,事实上也应等于0.115,
但用Trunc(X*(IntPower(10,i)) + 0.5)/IntPower(10,i))后结果是0。11,而不是0。12,
为什么?
用FloatToStr(FieldByName('WillPay').AsFloat)返回的值是0.114999999999998;
为什么?
我是想进行四舍五入操作,请问有什么办法解结?