为什么会这样计算:double number = (13 /(13+12+13))
等于0?
我认为应该在 0.34 左右!
谢谢!
因为您将 anint
与 an分开int
。你应该做
double number = (13.0 /(13.0+12.0+13.0));
那是整数。所以它进行整数除法。并因此截断到下一个较低(接近 0)的整数。
将 a 添加.0
到一个数字13.0
,使其成为双倍。
因为您INT
在公式中使用了 all - 它也将被视为INT
结果。
试试这个:
var result = 13.0 / (13.0 + 12.0 + 13.0)
你的结果将是:
0.34210526315789475
尝试添加 .0:
(13.0 /(13+12+13))
否则你正在处理整数。
另一种选择是将其中一个参数显式转换为 double ,从而强制运行时执行双重除法。例如:
double result = ((double)13 / (13 + 12 + 13));
添加“.0”将有助于:
double number = (13.0 /(13.0+12.0+13.0));