2011-06-11 48 views
0

为什么这个计算:double number =(13 /(13 + 12 + 13))C#double,小数问题

等于0?

它应该在0.34左右,我想!

谢谢!

+0

可能重复[为什么我不能用诠释得到的百分比(http://stackoverflow.com/questions/2602025/为什么-I-不能最让百分比按使用-INT) – 2011-06-11 21:21:58

回答

0

由于您在公式中使用了所有INT,因此结果也将被视为INT

尝试此代替:

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

和你的结果将是:

0.34210526315789475 
0

尝试添加0.0:

(13.0 /(13 + 12 + 13))

否则你正在处理整数。

1

这是整数。所以它进行整数除法。从而截断到下一个较低(接近于0)的整数。

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

6

因为您将intint分开。你应该做

double number = (13.0 /(13.0+12.0+13.0)); 
0

另一个选项是投的参数一个明确将翻一番,从而迫使运行时执行师。例如:

double result = ((double)13/(13 + 12 + 13)); 
0

添加一个” .0" 将帮助:

double number = (13.0 /(13.0+12.0+13.0));