Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 极基本的除法方程在c中不起作用#_C#_Visual Studio 2010 - Fatal编程技术网

C# 极基本的除法方程在c中不起作用#

C# 极基本的除法方程在c中不起作用#,c#,visual-studio-2010,C#,Visual Studio 2010,我不能把它分成小数。它正舍入到值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

    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");
是的,这些是预期的产出

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

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


(我知道还有其他答案,但希望这能帮助您了解问题存在的原因。)

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

double x = 1;
double y = 1.5;

double ans = x / y;

我就知道会很简单,哈哈,成功了。谢谢你,先生。我给这个答案a
D
,因为我没有给一个双字的正确后缀。@ConradFrix:谢谢,但我实际上没有使用任何后缀,所以根据这个标准,我失败得很惨(所以D太好了)@AustinSalonen你很好地解释了为什么它的0和
D
是双字的正确后缀,所以我想说点好笑的。到此为止:P@ConradFrix:向我呼呼。。。哈在本例中,我看不到使用
Convert.ToDouble()
的价值。如果读者用整数替换x/y(就像OP那样),这甚至可能会让读者感到困惑。在我的书中,对评论进行更新/编辑总是值得投赞成票:)此外,无论上下文如何,你总是可以投赞成票说我是对的。