除以更高的数字返回0

时间:2012-10-03 14:44:11

标签: c#

当我尝试这样做时

double test = ((2 / 7) * 100);

它返回0.

有谁知道这是为什么以及如何解决它?

由于

6 个答案:

答案 0 :(得分:11)

2/7是整数除法,并将返回0.尝试改为

2.0 / 7

(double) 2 / 7

答案 1 :(得分:4)

你要划分整数

如果需要非整数结果,则至少一个操作数必须是float或double(或十进制)。

您可以通过向任何文字添加.00来创建文字。

答案 2 :(得分:0)

您要分割整数,因此2 / 7已成为0。只需尝试2.0 / 7.0即可获得正确的结果。

答案 3 :(得分:0)

它正在进行整数除法,因为所有操作数都是整数。

要解决此问题,请将至少一个操作数更改为双倍,如下所示:

double test = ((2.0 / 7.0) * 100.0);

答案 4 :(得分:0)

您正在进行整数数学运算,并且只有在得到最终结果时才转换为double

2 / 7 = 0

,而

2.0 / 7.0 = 0.285714285714285

使用double值进行数学运算:

double test = ((2.0 / 7.0) * 100.0);

答案 5 :(得分:0)

这是因为分裂。两个int数的除法返回截断任何小数点的int数。因此,操作2/7的结果将为0。

它应该是这样的:

double test =((2.0 / 7.0)* 100.0);