0

为什么会这样计算:double number = (13 /(13+12+13))

等于0?

我认为应该在 0.34 左右!

谢谢!

4

6 回答 6

6

因为您将 anint与 an分开int。你应该做

double number = (13.0 /(13.0+12.0+13.0));
于 2011-06-11T20:11:10.733 回答
1

那是整数。所以它进行整数除法。并因此截断到下一个较低(接近 0)的整数。

将 a 添加.0到一个数字13.0,使其成为双倍。

于 2011-06-11T20:06:53.430 回答
0

因为您INT在公式中使用了 all - 它也将被视为INT结果。

试试这个:

var result = 13.0 / (13.0 + 12.0 + 13.0)

你的结果将是:

0.34210526315789475
于 2011-06-11T20:06:24.713 回答
0

尝试添加 .0:

(13.0 /(13+12+13))

否则你正在处理整数。

于 2011-06-11T20:06:51.487 回答
0

另一种选择是将其中一个参数显式转换为 double ,从而强制运行时执行双重除法。例如:

double result = ((double)13 / (13 + 12 + 13)); 
于 2011-06-11T21:26:06.617 回答
0

添加“.0”将有助于:

double number = (13.0 /(13.0+12.0+13.0));
于 2013-03-18T13:50:55.467 回答