L
LeoSue
Unregistered / Unconfirmed
GUEST, unregistred user!
我有一个程序,用浮点进行运算,运算完毕之后formatfloat成小数点儿后两位。很普通的写法,就是formatfloat(a*b/c...,#.00),但是经过一段时间运行之后,同一个exe程序,在不同机器上,一定情况下运行结果不同,往往发生在33.645,77.825也就是有0.0005需要舍入的情况下。
在a*b/c等于33.645的情况下,A机器可能时33.65,B机器可能是33.64。
而把数据33。645直接formatfloat,就不会出现这种现象。
高人说,可能是最后的0.005使用0.0049999999999999999表示的,我不明白为什么会这样,哪位高人碰到过,如何解决呢?
在a*b/c等于33.645的情况下,A机器可能时33.65,B机器可能是33.64。
而把数据33。645直接formatfloat,就不会出现这种现象。
高人说,可能是最后的0.005使用0.0049999999999999999表示的,我不明白为什么会这样,哪位高人碰到过,如何解决呢?