当前位置:编程学习 > VB >>

为什么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 ,  基础类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,