急 3*4.8-14.4=-1.77635683940025E-15
请教为什么:Private Sub Form_Load()
Text1 = 3 * 4.8 - 14.4
End Sub
等于"-1.77635683940025E-15"
谢谢! --------------------编程问答-------------------- Private Sub Form_Load()
Text1 = 3 * 4.8 - 14.4
text1.text=format(text1.text,"##0.00")
End Sub
--------------------编程问答-------------------- 浮点数的小数是 2 进制表示的,与 10 进制小数存在误差。
你可以使用 Currency 类型,它是定点类型:
Private Sub Form_Load()
Text1 = CCur(3 * 4.8 - 14.4) '类型转换函数,转成 Currency 类型
End Sub
--------------------编程问答-------------------- 啰嗦两句。2 进制小数的各个小数位是 0.5, 0.25, 0.125, 0.0625 ... 当它用来表示十进制数时,只能用这些数的和来表示。有些 10 进制小数,无法用 2 进制小数精确表示,只有当小数位无穷大时,才能够无穷近似。但是你的计算机数位是有限的,所有加减结果常常有误差。 --------------------编程问答-------------------- 楼上正解,可以这样
Private Sub Form_Load()
Dim c@
c = 3 * 4.8 - 14.4
Text1 = c
End Sub --------------------编程问答-------------------- 到俺机器上又是另一幅景像。format吧。
--------------------编程问答-------------------- 同意of123 --------------------编程问答-------------------- 这是计算机精确度问题,大学里有一门数学数值代数,有一节专门讲计算机0与实际数学0的关系的。在你的计算机看来"-1.77635683940025E-15就是0了。哈哈,对于浮点数的计算就要考虑有效数字啊,对不对?
补充:VB , 基础类