PHP使用round()四舍六入实现银行家算法

http://www.zyhome.org/arc/226.html       

只有飞得更高
才有俯瞰一切的资格

--------------------

Round()函数不能简单的翻译为四舍五入。具体来说,我们从小学习的“四舍五入”是不科学的。

国际通行的是 Banker 舍入法(Banker ‘s rounding,银行家舍入)算法顾名思义,就是银行在计算时使用的规则,即“四舍六入五取偶”

就是说小于 4 或大于 6 的该舍该入是没有争议的,而5处在正中间,采取的原则是:如果舍入位为5,则舍入后最后一位为偶数。事实上这也是 IEEE 规定的舍入标准。因此所有符合 IEEE 标准的语言都应该是采用这一规则的。这就解释了为什么 2.5 舍入以后以后是 2,而 3.5 舍入以后是 4。

PHP_ROUND_HALF_UP:    该模式将进行四舍六入,遇5进1

PHP_ROUND_HALF_DOWN:  该模式将进行四舍六入,遇5不舍弃

PHP_ROUND_HALF_EVEN:    该模式将四舍六入,整数部分为奇数则进1

PHP_ROUND_HALF_ODD:   该模式将四舍六入,整数部分为偶数则进1

原文地址:https://www.cnblogs.com/dhjy123/p/13614368.html