算术运算:整型到双精度

本文关键字:双精度 整型 算术运算 | 更新日期: 2023-09-27 18:02:57

我在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 -我更喜欢使用类型后缀而不是强制类型转换,但这是一样的)