为什么3*4.8-14.4不等于0???
请教各位DX:为什么3*4.8-14.4<>0
Private Sub Form_Load()
Text1 = 3 * 4.8 - 14.4
End Sub
text1竟然等于"-1.77635683940025E-15"
谢谢! --------------------编程问答-------------------- 科学计数法没有绝对等于0的数,近似于0就可以了。比如:abs(Text1.text)<1e-5,就认为是0。 --------------------编程问答-------------------- 1楼正解 --------------------编程问答-------------------- 实际上是十进制小数用二进制浮点小数表示的误差问题,与科学计数法无关。科学计数法可以表示 0。
试试 3*4.25-12.75,因为这样的小数可以用二进制精确表示,没有误差。
再试试 4*4.8-19.2,当乘数是 2 的倍数时,误差消失了。 --------------------编程问答-------------------- 恩 。。可以“通分”解决 --------------------编程问答-------------------- 用整数计算就没有问题了
具体办法:所有数乘100,然后计算,最后结果除 100
我是菜鸟,欢迎加入QQ群56153339 交流怎么赚美元
只收菜鸟,不收大牛
补充:VB , 基础类