【发布时间】:2017-10-04 17:16:56
【问题描述】:
我正在 Excel 2007 中进行 VBA 编码。
我想在 tm (tm < 5) 在 tm = 5 时被评估为 true。这是怎么回事?
更有趣的是,如果您尝试从 tm = 4.9 开始,评估将是正确的!
Sub test()
Dim i As Integer
Dim tm As Double
tm = 4.8
For i = 1 To 5
MsgBox tm & " " & (tm < 5)
If tm < 2 Then
tm = tm + 0.05
ElseIf tm < 5 Then
tm = tm + 0.1
Else
tm = tm + 1
End If
Next i
End Sub
【问题讨论】:
-
原因是浮点数的精度有限。 See this answer
-
VBA rounding problem的可能重复
标签: excel if-statement vba