我们知道四舍五入是有误差的:其误差值是舍入位的一半。我们以舍入运用最频繁的银行利息计算为例来阐述该问题。
我们知道银行的盈利渠道主要是利息差,从储户手里收拢资金,然后放贷出去,其间的利息差额便是所获得的利润。对一个银行来说,对付给储户的利息的计算非常频繁,人民银行规定每个季度末月的20日为银行结息日,一年有4次的结息日。而使用四舍五入的方法该银行就会大大亏本。

最近看书知道了这个算法银行家算法,这个算法在java5之后使用起来很简单,BigDecimal.ROUND_HALF_EVEN就可以得到,其算法的思想是:

四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。

在普通的项目中舍入模式不会有太多影响,可以直接使用Math.round方法,但在大量与货币数字交互的项目中,比如P2P,一定要选择好近似的计算模式,尽量减少因算法不同而造成的损失。

如果有问题或者建议请多提出交流

you friend at CSND :)

关于BigDecimal.ROUND_HALF_EVEN银行家算法相关推荐

  1. 【韩老师零基础30天学会Java 09】Math Arrays 数组拷贝 自然排序 System BigDecimal 银行家算法舍入 日期类LocalDateTime转换 String翻转

    Math abs绝对值 pow求幂 ceil向上取整 floor向下取整 round四舍五入 sqrt求开方 random求随机数 思考: 请写出获取a-b之间的一个随机整数,a,b均为整数?2-7 ...

  2. 【Python】银行家算法(四舍六入五成双)和使用decimal进行四舍五入处理

    在python3中,round(num,n)和'%.nf'%num都是使用银行家算法进行小数位的处理的,即四舍六入五成双.(python2不记得了) 四舍六入五成双介绍 和四舍五入不同的是,对于最大小 ...

  3. toFixed() 踩坑----四舍六入 银行家算法

    你绝对想不到 toFixed()明明是数字的方法,结果转出来的是字符串,转字符串也就算了,结果,值还有可能不对. 我们正常理解的四舍五入,及时见5就入.但是你看看 对比之下发现 不管是 数字类型的 1 ...

  4. python银行家算法代码_避免死锁的银行家算法C++程序实现

     本篇博文为追忆以前写过的算法系列第二篇(20081021) 温故知新 目的:具有代表性的死锁避免算法是Dijskstra给出的银行家算法.本实验是基于银行家算法的思想通过编写C++程序实现银行家 ...

  5. 二十三、死锁的处理策略---避免死锁(银行家算法)

    一.知识总览 二.什么是安全序列 **所谓安全序列:**就是指如果系统按照这种序列分配资源,则每个进程都能顺利完成,只要能找出一个安全序列,系统就是安全状态.当然,安全序列可能有多个. 如果分配了资源 ...

  6. 操作系统 进程调度-银行家算法实验报告

    实验要求 一. 实验目的 死锁会引起计算机工作僵死,因此操作系统中必须防止.本实验的目的在于让学生独立的使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家 ...

  7. 随机洗牌算法 银行家算法

    1. 随机洗牌算法 https://blog.csdn.net/qq_26399665/article/details/79831490 Fisher-Yates Shuffle算法 最早提出这个洗牌 ...

  8. 实验三银行家算法linux,操作系统原理与linux_银行家算法实验报告.doc

    . . . PAGE 成 绩 评 阅 人 评阅日期 计算机科学与技术系 实 验 报 告 课程名称: 操作系统原理与linux 实验名称: 银行家算法 2011年 04 月 实验三 银行家算法 一.实验 ...

  9. 银行家算法的分析与实现

    文章目录 1 银行家算法的分析与实现 1 银行家算法的分析与实现 问题描述: 研究一个银行家如何将总数一定的资金,安全的借给若干个顾客,使顾客既能满足对资金的需求,也使银行家可以收回自己的全部资金,不 ...

  10. Math.Round默认采用的不是四舍五入法, 而是四舍六入的银行家算法, 如何找回四舍五入法?...

    Math.Round默认采用的不是四舍五入法, 而是四舍六入的银行家算法,  也就是四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍 去,五前为奇要进一, 这个算法比四舍五入更精确些. R ...

最新文章

  1. centos7 安装无线工具包wireless-tools 包含 iwlist,iwconfig命令
  2. 【机器学习】平衡你的数据集的几项技巧
  3. javascript 传多个参数的正则表达式(用来获取某个参数值)
  4. python装饰器的顺序_python中装饰器的装饰顺序和执行顺序
  5. java5 离线安装包_ElasticSearch 5.5 离线环境的完整安装及配置详情,附kibana、ik插件配置及安装包下载路径...
  6. uploadify php 重命名,uploadify与php使用详解
  7. linux dstat,dstat 用法详解
  8. 【操作指导】安捷伦数据采集器开机自检/通讯接口设置说明
  9. 饿了么美团外卖返利程序对接公众号发单机器人分销系统返利源码
  10. java.util.concurrent.ExecutionException 错误解决。
  11. 异步FIFO设计原理及Verliog源代码
  12. 迄今为止最深刻分析家乐福的文章—从商业模式、公司制度、公司文化三方面
  13. Firefox Crash后session内容的恢复
  14. bnuoj 44359 快来买肉松饼
  15. python有多强大_ruby和python哪个强大
  16. Ajax页面缓存问题分析与解决办法
  17. 流行的通讯库/消息中间件
  18. 计算机软件系统 七年级,七年级计算机软件.ppt
  19. 基于STM32F767的RT-Thread移植学习
  20. 网络安全(黑客)工具

热门文章

  1. 怀旧服务器联盟优势,魔兽世界tbc联盟服务器选哪个_wowtbc怀旧服联盟服务器排名_3DM网游...
  2. 使用JSONRPC操作附带token(secret)的aria2
  3. 【深度学习】(1) CNN中的注意力机制(SE、ECA、CBAM),附Pytorch完整代码
  4. 高通Hexagon通用计算DSP介绍
  5. python蒙特卡洛模拟return_蒙特卡罗方法入门
  6. linux系统转移到另一个硬盘,(扩展根目录容量方法汇总)把Linux系统迁移到另一个分区或者硬盘...
  7. OA多级审批流程表设计方案以及开发思路(非常细节)
  8. iOS:直播动态评论和点赞效果
  9. 兴义智力象机器人_中科院科普讲师专家赴黔西南州做科普报告巡讲
  10. CHI到底是干嘛的 保证cache一致性 2.3 snoop