小数运算有关问题
小数运算问题
60000.00*15*6/12/100=4500.01
40000.00*15*6/12/100=3000.00
为什么会多出0.01来呢?
------解决方案--------------------
用 Decimal 类型进行运算。
------解决方案--------------------
您的错误在于定义数据类型有错误。
必须正确定义被接受的数据类型,按照下面所示。
60000.00*15*6/12/100=4500.01
40000.00*15*6/12/100=3000.00
为什么会多出0.01来呢?
------解决方案--------------------
用 Decimal 类型进行运算。
Sub p(ByVal v As Object)
Debug.Print("{0} {1}", TypeName(v), v)
End Sub
Sub Main()
p(60000@ * 15@ * 6@ / 12@ / 100@)
p(40000@ * 15@ * 6@ / 12@ / 100@)
End Sub
Decimal 4500
Decimal 3000
------解决方案--------------------
您的错误在于定义数据类型有错误。
必须正确定义被接受的数据类型,按照下面所示。
Dim i As Double
Dim y As Double
i = 60000.0 * 15 * 6 / 12 / 100
y = 40000.0 * 15 * 6 / 12 / 100