C#double,小数问题
答
由于您在公式中使用了所有INT
,因此结果也将被视为INT
。
尝试此代替:
var result = 13.0/(13.0 + 12.0 + 13.0)
和你的结果将是:
0.34210526315789475
答
尝试添加0.0:
(13.0 /(13 + 12 + 13))
否则你正在处理整数。
答
这是整数。所以它进行整数除法。从而截断到下一个较低(接近于0)的整数。
将一个.0
添加到13.0
这样的数字,使其成为双倍数。
答
因为您将int
与int
分开。你应该做
double number = (13.0 /(13.0+12.0+13.0));
答
另一个选项是投的参数一个明确将翻一番,从而迫使运行时执行双师。例如:
double result = ((double)13/(13 + 12 + 13));
答
添加一个” .0" 将帮助:
double number = (13.0 /(13.0+12.0+13.0));
的
可能重复[为什么我不能用诠释得到的百分比(http://*.com/questions/2602025/为什么-I-不能最让百分比按使用-INT) – 2011-06-11 21:21:58