四舍五入和银行家舍入法
一.四舍五入是一种应用非常广泛的近似计算方法,其有算术舍入法和银行家舍入法两种。
所谓算术舍入法,就是我们通常意义上的四舍五入法。其规则是:当舍去位的数值大于等于5时,在舍去该位的同时向前位进一;当舍去位的数值小于5时,则直接舍去该位。
银行家舍入法即“四舍六入法”,可以概括为:“四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一”。
二. .net下默认是银行家舍入法
给大家写个小例子,可以更好 明白 银行家舍入法
class Program { static void Main(string[] args) { do { Console.WriteLine("请输入一个小数回车测试,输入其他回车结束测试"); string Num = Console.ReadLine(); try { Console.WriteLine("结果为" + Convert.ToInt16(Convert.ToDouble(Num))); } catch (Exception e) { break; } } while (true ); } }得到结果如下:
如果需要用到 四舍五入法,可以用以下方法:
1)
public decimal Round(decimal x, int len)
{
return Decimal.Round(x + 0.000001m, len);
}
2)
或者 用Round的第三个参数 MidpointRounding.AwayFromZero