我正在尝试在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
答案 0 :(得分:1)
intMpg
不应为整数。您可能希望使用Double
,在这种情况下,您声明intMpg
的行将是:
Dim intMpg As Double
您还应该使用/
运算符进行除法,而不是\
运算符,因为后者执行整数除法,如here所述。
因此,执行除法的行应为:
intMpg = CInt(txtMiles.Text) / CInt(txtGallons.Text)
如果你执行这些更改,intMpg
将是一个误导性的名称(因为它不是整数,即使名称听起来像是这样),所以你应该把它改成别的比如milesPerGallon
。
答案 1 :(得分:0)
Integer
只是整数。在Integer
中存储除法的结果将进行整数除法,这意味着您的结果也将是一个整数,小数将被截断。要获取小数,您应该将结果变量声明为Double
。