概述
我们知道四舍五入是有误差的:其误差值是舍入位的一半。我们以舍入运用最频繁的银行利息计算为例来阐述该问题。
我们知道银行的盈利渠道主要是利息差,从储户手里收拢资金,然后放贷出去,其间的利息差额便是所获得的利润。对一个银行来说,对付给储户的利息的计算非常频繁,人民银行规定每个季度末月的20日为银行结息日,一年有4次的结息日。而使用四舍五入的方法该银行就会大大亏本。
最近看书知道了这个算法银行家算法,这个算法在java5之后使用起来很简单,BigDecimal.ROUND_HALF_EVEN就可以得到,其算法的思想是:
四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。
在普通的项目中舍入模式不会有太多影响,可以直接使用Math.round方法,但在大量与货币数字交互的项目中,比如P2P,一定要选择好近似的计算模式,尽量减少因算法不同而造成的损失。
如果有问题或者建议请多提出交流
you friend at CSND :)
最后
以上就是畅快绿茶为你收集整理的关于BigDecimal.ROUND_HALF_EVEN银行家算法的全部内容,希望文章能够帮你解决关于BigDecimal.ROUND_HALF_EVEN银行家算法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复