为什么用 Excel VBA 减去两个数字时会出现小数错误?
Why do I get a decimal error when I substract two numbers with Excel VBA?
我做了一个简化的例子来说明我的问题。当用一个数字减去另一个数字时,我得到一个错误的结果。我可以用 2 位小数舍入结果,但这更像是一种解决方法。
Sub Test()
Dim Sale As Double
Dim Fee As Double
Dim Payment As Double
Payment = 104953.98
Sale = 105000
Fee = Sale - Payment
End Sub
立即测试代码 window 显示费用计算为 46,0200000000041,这是错误的。
如果您出于某种原因需要它们是双精度数,请在计算之前将它们转换为小数:
Fee = CDec(Sale) - CDec(Payment)
根据您可能想尝试的变量命名
Sub Test()
Dim Sale As Currency
Dim Fee As Currency
Dim Payment As Currency
Payment = 104953.98
Sale = 105000
Fee = Sale - Payment
End Sub
您还应该继续阅读 Floating-point arithmetic and https://floating-point-gui.de/
我做了一个简化的例子来说明我的问题。当用一个数字减去另一个数字时,我得到一个错误的结果。我可以用 2 位小数舍入结果,但这更像是一种解决方法。
Sub Test()
Dim Sale As Double
Dim Fee As Double
Dim Payment As Double
Payment = 104953.98
Sale = 105000
Fee = Sale - Payment
End Sub
立即测试代码 window 显示费用计算为 46,0200000000041,这是错误的。
如果您出于某种原因需要它们是双精度数,请在计算之前将它们转换为小数:
Fee = CDec(Sale) - CDec(Payment)
根据您可能想尝试的变量命名
Sub Test()
Dim Sale As Currency
Dim Fee As Currency
Dim Payment As Currency
Payment = 104953.98
Sale = 105000
Fee = Sale - Payment
End Sub
您还应该继续阅读 Floating-point arithmetic and https://floating-point-gui.de/