Math.round()的取整规则结论:四舍五入下取整

例如

A: 11.2 ----> 11

B: 11.6 ----> 12

C: 11.5--->12

D: 11.51->12

F: -11.5->-11

E: -11.51-> -11.01->-12. 加0.5,然后向下取整数

从感觉上来说,就说得到最靠近的那个整数

下面常用于四舍五入的方式

System.out.println("Hello World!"+ String.format("%.2f",21.865)); // 21.87

四舍六入五成双 BigDecimal+BigDecimal.ROUND_HALF_UP 90%符合吧,实际可能有点出入

只是发现只有保留整数位的时候,不管奇偶都会进1

四舍六入就不废话了,主要看五的情况

double result = new BigDecimal(21.8750).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("Hello World!"+result);  21.88 // 5前面是奇数,进一位
double result = new BigDecimal(21.8650).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("Hello World!"+result); 21.86 // 5前面是偶数,直接舍弃double result = new BigDecimal(21.8651).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("Hello World!"+result); 21.87 // 因为5后面还有有效非0数字,那么肯定要进位了
BigDecimal.ROUND_HALF_DOWN相比BigDecimal.ROUND_HALF_UP,对于5的临界情况都会舍弃,不会进1
double result = new BigDecimal(24.50).setScale(0, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("Hello World!"+result); // 25.0 ,5前面是整数了(不符合四舍六入五成双规则了),不再取决于奇偶,还是BigDecimal.ROUND_HALF_UP的原因,导致进位

double result = new BigDecimal(24.50).setScale(0, BigDecimal.ROUND_HALF_DOWN).doubleValue(); System.out.println("Hello World!"+result); // 24.0 // 临界情况,无论如何,都不会进1

完全符合四舍六入五成双的

参考https://blog.csdn.net/zhao_963084302/article/details/84742614

    /*** @param value 需要科学计算的数据* @param digit 保留的小数位* @return* 功能:四舍六入五成双计算法*/public static String sciCal(double value, int digit){String result = "-999";try {double ratio = Math.pow(10, digit);double _num = value * ratio;double mod = _num % 1;double integer = Math.floor(_num);double returnNum;if(mod > 0.5){returnNum=(integer + 1) / ratio;}else if(mod < 0.5){returnNum=integer / ratio;}else{returnNum=(integer % 2 == 0 ? integer : integer + 1) / ratio;}BigDecimal bg = new BigDecimal(returnNum);result = bg.setScale((int)digit, BigDecimal.ROUND_HALF_UP).toString();} catch (RuntimeException e) {throw e;}return result;}

Java中四舍五入和四舍六入五成双相关推荐

  1. 四舍五入 与 四舍六入五成双

    今天公司有个同事在调一个asp程序时候,发现 round(1.25,1) 返回的竟然是1.2 而不是1.3 查询了一下CSDN的帖子,发现这竟然是一个Bug: http://search.csdn.n ...

  2. C# 四舍五入 (解决四舍六入五成双的问题)

    四舍六入五成双是一种精确度的计数保留法.舍入规律是"四舍六入五成双",这里"四"是小于五的意思,"六"是大于五的意思,"五&quo ...

  3. JAVA计算保留小数-四舍六入五成双

    四舍六入五成双 含义: 对于位数很多的近似数,当有效位数确定后,其后面多余的数字应该舍去,只保留有效数字最末一位,这种修约(舍入)规则是"四舍六入五成双",也即"4舍6入 ...

  4. php 四舍五入,PHP 四舍五入,不四舍五入,四舍六入五成双(银行家舍入)

    1.php保留两位小数并且四舍五入,代码如下: round(123.666666, 2); // 123.67 2.php保留两位小数并且不四舍五入,代码如下: $offset = strpos($n ...

  5. java 四舍六入五成双_EXCEL实现四舍六入五成双修约规则的方法

    中国药典的修约原则是四舍六入五成双(只是中国药典这样,USP.EP都是四舍五入).四舍六入五成双的修约原则为: 1. 被修约的数字小于5时,该数字舍去: 2. 被修约的数字大于5时,则进位: 3. 被 ...

  6. Excel中的四舍六入五成双

    我们都知道四舍五入是一种精确的计数保留法,但是他就是最精确,最能得到我们想要的吗?反正我之前认为他是可以的,但是今天企业要求我们用了一种新得保留方法,四舍六入五成双,他是一种比较精确比较科学的计数保留 ...

  7. C语言中的四舍六入五成双 和 四舍五入

    %.mf 可以让浮点数保留 m 位小数输出 保留的是精度为 四舍六入五成双 就是 5以下舍弃 5以上进位 而当下一位为5时要讨论: 被化简的小数位后面一位的数字等于5时 要看5前面的数字,若是奇数则进 ...

  8. java 四舍六入五成双_显示格式的四舍六入五成双

    一.问题描述 在使用快逸复杂报表设计" target="_blank" class="quieeLink1">设计器时,若单元格内的信息为数值, ...

  9. python中round函数的精度保留方法---四舍六入五成双

    当我们利用python进行数据计算时,通常会对浮点数保留相应的位数,这时候就会用到round函数,相信各位朋友在进行使用时会遇到各种问题,关于round函数保留精度.保留方法的问题,本文会进行详细的解 ...

最新文章

  1. Python九十天学习框架,从1到90,从0基础到IQ100
  2. spring4声明式事务--01注解方式
  3. 漫步最优化二十九——D.S.C.算法
  4. jQuery之全选功能
  5. Spring-boot模块化编程
  6. python把工作簿拆分为工作表_excel将一个工作表根据条件拆分成多个工作表
  7. [javascript]实现登陆界面拖动窗口
  8. CSS 部分知识点 总结
  9. 软件测试常见断言,5.6 postman 常用的断言
  10. 苏州软件企业如何办理自产软件产品增值税即征即退
  11. 执行npm install报错:npm ERR! code EINTEGRITY,npm ERR! 最彻底,最实用的方法就是更新node版本
  12. 乔治城大学计算机科学硕士2019,[2019世界大学排名]2019乔治城大学排名
  13. LSF Command
  14. 手机/笔记本电脑看电视直播
  15. 日系插画学习笔记(七):日系角色脸部画法-3表情
  16. Crazy Binary String
  17. AHCI,SATA,NVME
  18. 影视剧里程序员使用的双显示屏,在生活中真的需要么?正经科普
  19. 电脑各修改项【自用】
  20. 超好用的画图工具推荐

热门文章

  1. hdu 5145 NPY and girls (莫队算法)
  2. ICC2 user guide(三)Clock Tree Synthesis
  3. python 内置函数、匿名函数
  4. Ubuntu安装搜狗输入法后修改默认英文输入状态的方法
  5. 【BP靶场portswigger-服务端6】信息泄露漏洞-5个实验(全)
  6. embarrass的用法和搭配_求embarrass和它对应的形容词的相关用法
  7. c语言动态分配输出学生成绩,C语言之:结构体动态分配内存(利用结构体数组保存不超过10个学生的信息,每个学生的信息包括:学号、姓名和三门课(高数、物理和英语 )的成绩和平均分(整型)。)...
  8. 逆向工程核心原理 小结
  9. MATLAB之Nyquist图和Bode图
  10. M580PLC以太网读通讯和写通讯