在C#中關于一些除法計算問題
Response.Write("<br>" + 4 / 3); //1
除數與被除數都爲整數時,結果爲整數。
除法将结果舍入到零,并且结果的绝对值是小于两个操作数的商的绝对值的最大可能整数。当两个操作数符号相同时,结果为零或正;当两个操作数符号相反时,结果为零或负。
如果左操作数为最小可表示 int 或 long 值,右操作数为 -1,则发生溢出。无论操作是在 checked 还是在 unchecked 上下文中发生,此时总是引发 System.OverflowException。
如果右操作数的值为零,则引发 System.DivideByZeroException。
esponse.Write("<br>" + 5%2); //1 取余數
Response.Write("<br>" + 4 / 3.0); //1.33333333333333
結果爲double類型,精確到15-16位。
這裏3.0指定爲double類型。
Response.Write("<br>" + 4 / 3f); //1.333333
結果爲float類型,精確到7位。
這裏3f指定爲float類型。
附:
可在一个表达式中兼用数值整型和浮点型。在此情况下,整型将转换为浮点型。根据以下规则计算表达式:
如果其中一个浮点类型为 double,则表达式的计算结果为 double 或 bool(对于关系表达式或布尔表达式)。
如果表达式中不存在 double 类型,则表达式的计算结果为 float 类型,在关系表达式或布尔表达式中为 bool 类型。