编程小白请教各位前辈一个问题,我的主程序如下:
If ((10 * 7.2) \ (10 * 1.2)) * 1.2 = 7.2 Then
MsgBox(((10 * 7.2) \ (10 * 1.2)) * 1.2)
MsgBox("true")
Else
MsgBox(((10 * 7.2) \ (10 * 1.2)) * 1.2)
MsgBox("false")
End If
问题:条件中等号左边算出的结果为7.2,条件为真才对,运行结果却执行的是else后面的语句,请问这是为什么?
标签:
把结果打印出来看看不就知道了
vb默认精度问题。
默认小数是按Double类型计算的,在计算时会有损失。
((10 * 7.2) \ (10 * 1.2)) * 1.2 计算出来的值并不是7.2,而是7.19999……
可以使用Decimal类型来判断。