C# 极基本的除法方程在c中不起作用#
我不能把它分成小数。它正舍入到值0C# 极基本的除法方程在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
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那样),这甚至可能会让读者感到困惑。在我的书中,对评论进行更新/编辑总是值得投赞成票:)此外,无论上下文如何,你总是可以投赞成票说我是对的。