数学计算在vb

ben*_*lim 0 vb.net visual-studio-2010

我试图在vb中执行简单的乘法.

以下是我的代码:

Dim minus As Integer
Dim minusPrice As Integer
Dim totalPrice As Integer
         If quantity > 20 Then
            minus = quantity - 20
            minusPrice = ((minus) * (0.3))
            MsgBox("Minus " + minus.ToString)
            MsgBox("minusPrice " + minusPrice.ToString)

            totalPrice = 30 + minusPrice
        End If
Run Code Online (Sandbox Code Playgroud)

但为什么"minusPrice"给我0?它应该给我"0.3".

per*_*ist 7

您将minusPrice声明为整数,因此它会舍入您的结果.

你需要...

Dim minusPrice As Decimal
Dim totalPrice As Decimal
Run Code Online (Sandbox Code Playgroud)

或双倍......或漂浮,取决于您的需要.价格通常是十进制的.

---编辑---

刚注意到我错过了一个重要的部分:

minusPrice = ((minus) * (0.3m))
Run Code Online (Sandbox Code Playgroud)

除非0.3也表示为小数,否则可能会出现小的舍入误差.