我可能会问愚蠢的问题,但我不明白为什么这并没有给我预期的输出( ie 2.5
):
double x = 5/2;
Console.WriteLine(x.ToString());
答案 0 :(得分:4)
5 / 2
执行integer division 无论您指定哪种类型。它总是忽视小数部分。
您需要使用浮点除法。
double x = 5.0 / 2;
double x = 5 / 2.0;
double x = 5.0 / 2.0;
当你除以两个整数时,结果总是一个整数。对于 例如,7/3的结果是2。
从C#规范部分$7.7.2 Division operator,有3种类型的划分;
从整数除法的相关部分;
该除法将结果舍入为零,且绝对值为 结果是最大可能的整数小于 两个操作数的商的绝对值。结果为零 当两个操作数具有相同的符号且为0或0时为正 当两个操作数具有相反的符号时为负。