日期:2014-05-17 浏览次数:20906 次
Math.Round (Decimal, Int32) | 将小数值舍入到指定精度。 由 .NET Compact Framework 支持。 |
Math.Round (Double, Int32)? |
将双精度浮点值舍入到指定精度。 由 .NET Compact Framework 支持。 |
Math.Round(3.44, 1); //Returns 3.4. Math.Round(3.45, 1); //Returns 3.4. Math.Round(3.46, 1); //Returns 3.5.
依照他的例子得到的是"五舍六入",我改变了一下数字得到的结果将完全改变。
Math.Round(3.445, 1); //Returns 3.4.
Math.Round(3.455, 1); //Returns 3.5.
Math.Round(3.465, 1); //Returns 3.5.
Math.Round(3.450, 1); //Returns 3.4.(补0是无效的)
Math.Round(3.4452, 2); //Returns 3.45.
Math.Round(3.4552, 2); //Returns 3.46.
Math.Round(3.4652, 2); //Returns 3.47.
四舍六入五成双
四舍六入五成双是一种比较精确比较科学的计数保留法,是一种数字修约规则。
对于位数很多的近似数,当有效位数确定后,其后面多余的数字应该舍去,只保留有效数字最末一位,这种修约(舍入)规则是“四舍六入五成双”,
?
也即“4舍6入5凑偶”这里“四”是指≤4 时舍去,
"六"是指≥6时进上,
"五"指的是根据5后面的数字来定,当5后有数时,舍5入1;
当5后无数或为0时,需要分两种情况来讲:
①5前为奇数,舍5入1;
②5前为偶数,舍5不进。
?
具体规则如下:
? ?1. 被修约的数字等于或小于4时,该数字舍去;
2. 被修约的数字等于或大于6时,则进位;
3. 被修约的数字等于5时,要看5前面的数字,若是奇数则进位,若是偶数则将5舍掉,即修约后末尾数字都成为偶数;若5的后面还有不为“0”的任何数,则此时无论5的前面是奇数还是偶数,均应进位。
举例,用上述规则对下列数据保留3位有效数字:
9.8249=9.82, 9.82671=9.83
9.8350=9.84, 9.8351 =9.84
? ?9.8250=9.82, 9.82501=9.83
从统计学的角度,“四舍六入五成双”比“四舍五入”要科学,在大量运算时,它使舍入后的结果误差的均值趋于零,而不是像四舍五入那样逢五就入,导致结果偏向大数,使得误差产生积累进而产生系统误差,“四舍六入五成双”使测量结果受到舍入误差的影响降到最低。
?
例如:1.15+1.25+1.35+1.45=5.2,
若按四舍五入取一位小数计算:
1.2+1.3+1.4+1.5=5.4
按“四舍六入五成双”计算,
1.2+1.2+1.4+1.4=5.2,舍入后的结果更能反映实际结果。
?