0
可能是我在问愚蠢的问题,但我不明白为什么不给我输出我希望(即2.5
):转换双重价值的ToString()
double x = 5/2;
Console.WriteLine(x.ToString());
可能是我在问愚蠢的问题,但我不明白为什么不给我输出我希望(即2.5
):转换双重价值的ToString()
double x = 5/2;
Console.WriteLine(x.ToString());
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种类型的划分;
而且从在整数除法的相关部分;
划分舍入结果趋向于零,而 绝对值的结果是最大的可能整数小于所述两个操作数的商数的 绝对值。当两个操作数具有相同的符号和零时结果为零,或者当两个操作数具有相反的符号时为负,或者为 。
谢谢@SonerGönül,很好的解释 –
整数除法。 '5/2 == 2'.Try'double x = 5.0/2' – AlexD
Tnx @AlexD!和答案帮助我了解 –