2015-07-13 44 views

回答

4

5/2执行integer division不管您分配它的类型。它总是忽视小数部分。

您需要改用浮点除法。

double x = 5.0/2; 
double x = 5/2.0; 
double x = 5.0/2.0; 

/ Operator

当你把两个整数,结果是总是整数。对于 例如,7/3的结果为2.

从C#规范部分$7.7.2 Division operator,有3种类型的划分;

  • 整数除法
  • 浮点除法
  • 小数除法

而且从在整数除法的相关部分;

划分舍入结果趋向于零,而 绝对值的结果是最大的可能整数小于所述两个操作数的商数的 绝对值。当两个操作数具有相同的符号和零时结果为零,或者当两个操作数具有相反的符号时为负,或者为 。

+0

谢谢@SonerGönül,很好的解释 –