2

我不能把它分成小数。它正在四舍五入到值 0。

    private void button24_Click(object sender, EventArgs e)
    {
        double x = 0;

        x = 1 / 2;

        ans.Text = x.ToString();
    }

当我调试时,x 在发送到文本框“ans”之前为零。

我试过了..字符串变量仍然为零..

double x = 1/5;

string displayX = x.ToString("0.0000");
4

3 回答 3

7

这是整数除法,这些是预期的输出。

double x = 1.0 / 5;  // this will not perform integer division
double x = 1/5;  // this does  (1/5 = 0).  
double x = 1D / 5; // this will not because 1 is treated as a double
于 2012-05-04T19:35:42.987 回答
2

您可以执行以下操作之一:

double x = 1;
double y = 1.5;

double ans = x / y;
于 2012-05-04T19:38:33.627 回答
1

将 double x = 1/5 替换为 double x = 1.0/5 应该可以解决问题。因为您要划分的两个数字都是整数,所以它仍然将其作为整数处理,而不是作为双精度数处理。当您从逻辑上考虑时,它是有道理的-它以这些数字的任何形式进行除法,然后将其保存到变量中;变量类型与实际方程无关。

(我意识到已经有其他答案了,但希望这能帮助您了解问题存在的原因。)

于 2012-05-04T19:38:24.250 回答