为什么我看不到c#中的小数点数?

时间:2012-03-20 22:06:15

标签: c#

int total = 201;

double Average = total / 7;

result should be 28.71428571428571.

我已尝试使用float,decimal和double作为平均值,但结果最终为28。

5 个答案:

答案 0 :(得分:11)

你正在进行整数除法!

201/7完全是不可或缺的,因此结果甚至不会触及浮点数,而是需要首先转换为双数:

double Average = (double)total / 7.0;

答案 1 :(得分:2)

它正在进行整数运算,因为total是一个int,而7是一个int。如果您将它们中的任何一个更改为十进制,您将获得您正在寻找的结果。

e.g。

int total = 201;

double Average = total / 7.0;

答案 2 :(得分:2)

您可以使用D后缀隐式声明操作数是双精度型,例如:

201 / 7
28

201 / 7D
28.714285714285715

或者:

double Average = total / 7D;

答案 3 :(得分:1)

因为int除以int总是int。

试试这个:

double average = total / 7.0;

答案 4 :(得分:1)

total为int,7为int。整数除法的结果是int。它会被加速后加倍,但这并不重要,因为它已经被截断了。尝试:

double average = total / 7.0;

7.0是双字面值,int和double除法的结果是double。