为什么分裂总是零?

时间:2016-12-22 08:16:33

标签: c#

int value = 10 * (50 / 100);

预期答案是5,但它始终为零。有谁能请详细说明原因?

非常感谢。

3 个答案:

答案 0 :(得分:3)

因为50/100的结果为0。

50/100等于int(50/100),返回0

另外,如果您想要返回5,请使用此选项:

int value = (int)(10 * (50 / 100.0));

(50/100.0)的结果是0.5

答案 1 :(得分:2)

因为您正在进行整数除法:(50 / 100)给出0

试试这个:

int value = (int)(10 * (50 / 100.0));

或反转乘法/除法

int value = (10 * 50) / 100;

所以它在分数之前成倍增加

答案 2 :(得分:1)

您对int值进行操作。 50/100中的int0