我在Windows应用程序中使用了2个文本框和一个按钮。
textBox1
为用户输入
textBox2
显示算术运算的结果。
当用户单击按钮时,应执行以下操作:
1000 * textbox1.text / 60
这里我使用
private void button1_Click(object sender, EventArgs e)
{
int Result = 1000 * Convert.ToInt32(textBox1.Text) / 60;
textBox2.Text = Result.ToString();
}
我得到的值,然而,是一个整数,即使我希望它是一个双精度体。
我该如何解决这个问题?
规则是:
当一个整数除以另一个整数时,算术运算执行为整数运算。如果您希望它以float、double或十进制算术,您需要适当地转换其中一个值。
所有这些都可以:
double Result = 1000 * Convert.ToDouble(textBox1.Text) / 60;
double Result = 1000 * Convert.ToInt32(textBox1.Text) / (double)60;
double Result = 1000 * Convert.ToInt32(textBox1.Text) / 60.0;
来自MSDN的整数除法:
结果是number1除以number2的整数商。的整数商丢弃任何余数,只保留整数部分。
右边至少要有一个双引号
double Result = 1000 * Convert.ToInt32(textBox1.Text) / 60.0;
额外注意:为了有一个双精度作为这样一个操作的结果,你必须给它至少一个双精度,否则右边部分(1000 * Convert.ToInt32(textBox1.Text) / 60
)将只是一个整数,然后从左边部分(double Result =
)隐式强制转换为双精度。
您强制结果一直是整数:
int Result = 1000 * Convert.ToInt32(textBox1.Text) / 60;
你应该强制结果为Double类型,并且强制两个操作数都为Double类型:
double Result = 1000 * Convert.ToDouble(textBox1.Text) / 60d;
(60d代表(double) 60 -我更喜欢使用类型后缀而不是强制类型转换,但这是一样的)