MPG计算器未给出正确答案

时间:2014-08-30 02:04:48

标签: vba calculator

我正在尝试在Visual Basic中创建一个MPG计算器,但它只计算整数而不是小数。当我输入10加仑部分和375进入英里部分时,计算器只计算37而不是37.5。

Public Class Form1
    Private Sub btnCalculateMpg_Click(sender As Object, e As EventArgs) Handles btnCalculateMpg.Click
        'Declare variables for the calculation.
        Dim intMpg As Integer

        lblMpgCalculated.Text = String.Empty

            Try
                'Calculate and display Miles per Gallon.
            intMpg = CInt(txtMiles.Text) \
                    CInt(txtGallons.Text)
            lblMpgCalculated.Text = intMpg.ToString("N")
            Catch
                'Error Message.
                MessageBox.Show("All input must be valid numeric values.")
            End Try
    End Sub

2 个答案:

答案 0 :(得分:1)

如果您不希望收到整数的结果,则

intMpg不应为整数。您可能希望使用Double,在这种情况下,您声明intMpg的行将是:

Dim intMpg As Double

您还应该使用/运算符进行除法,而不是\运算符,因为后者执行整数除法,如here所述。

因此,执行除法的行应为:

intMpg = CInt(txtMiles.Text) / CInt(txtGallons.Text)

如果你执行这些更改,intMpg将是一个误导性的名称(因为它不是整数,即使名称听起来像是这样),所以你应该把它改成别的比如milesPerGallon

答案 1 :(得分:0)

Integer只是整数。在Integer中存储除法的结果将进行整数除法,这意味着您的结果也将是一个整数,小数将被截断。要获取小数,您应该将结果变量声明为Double