if语句输出问题

2021-02-19 16:53发布

编程小白请教各位前辈一个问题,我的主程序如下:

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后面的语句,请问这是为什么?

标签:
2条回答
冷血范
2楼-- · 2021-02-19 17:09

把结果打印出来看看不就知道了

查看更多
该账号已被封号
3楼-- · 2021-02-19 17:15

vb默认精度问题。
默认小数是按Double类型计算的,在计算时会有损失。
((10 * 7.2) \ (10 * 1.2)) * 1.2 计算出来的值并不是7.2,而是7.19999……
可以使用Decimal类型来判断。

查看更多
登录 后发表回答