小数运算有关问题

小数运算问题
60000.00*15*6/12/100=4500.01
40000.00*15*6/12/100=3000.00
为什么会多出0.01来呢?
------解决方案--------------------
引用:
不粗确原理知道,现在要的解决问题方法,我用excel的公式计算就不会出错,想知道怎么搞的

用 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