// 设置小数点后第三位数字一大一小观察效果
BigDecimal num =  new BigDecimal("3.3235667");
BigDecimal numOne =  new BigDecimal("3.3275667");

1、ROUND_UP:进位制:不管保留数字后面是大是小(0除外)都会进1

// ROUND_UP--进位制:不管保留数字后面是大是小(0除外)都会进1
BigDecimal num1 = num.setScale(2,BigDecimal.ROUND_UP);
System.out.println("SmallROUND_UP:"+num1);
BigDecimal numTwo = numOne.setScale(2,BigDecimal.ROUND_UP);
System.out.println("BigROUND_UP:"+numTwo);
打印结果:SmallROUND_UP:3.33  BigROUND_UP:3.33

2、ROUND_DOWN:保留设置数字,后面所有直接去除

// ROUND_DOWN--保留设置数字,后面所有直接去除

BigDecimal num2 = num.setScale(2,BigDecimal.ROUND_DOWN);
System.out.println("SmallROUND_DOWN:"+num2);
BigDecimal numThree = numOne.setScale(2,BigDecimal.ROUND_DOWN);
System.out.println("BigROUND_DOWN:"+numThree);打印结果:SmallROUND_DOWN:3.32BigROUND_DOWN:3.32

3、ROUND_HALF_UP:根据保留数字后一位>=5进行四舍五入

// ROUND_HALF_UP--根据保留数字后一位>=5进行四舍五入
BigDecimal num3 = num.setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println("SmallROUND_HALF_UP:"+num3);
BigDecimal numFour = numOne.setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println("BigROUND_HALF_UP:"+numFour);
打印结果:SmallROUND_HALF_UP:3.32
      BigROUND_HALF_UP:3.33

4、ROUND_HALF_DOWN:根据保留数字后一位>5进行四舍五入

BigDecimal num4 = num.setScale(2,BigDecimal.ROUND_HALF_DOWN);
System.out.println("SmallROUND_HALF_DOWN:"+num4);
BigDecimal numFive = numOne.setScale(2,BigDecimal.ROUND_HALF_DOWN);
System.out.println("BigROUND_HALF_DOWN:"+numFive);
打印结果:SmallROUND_HALF_DOWN:3.32
      BigROUND_HALF_DOWN:3.33

BigDecimal的setScale四大常用方法总结相关推荐

  1. BigDecimal类setScale方法问题:算数异常,精确度丢失-ArithmeticException: Rounding necessary

    BigDecimal类setScale方法问题:算数异常,精确度丢失-ArithmeticException: Rounding necessary 在运行如下代码时, package BigDeci ...

  2. BigDecimal类 setScale()方法java.lang.ArithmeticException: Rounding necessary

    BigDecimal调用setScale方法时,当未设置舍入模式时,系统会给个默认ROUND_UNNECESSARY(int 值为7)值,如果小数点后不为零,而且要保留的小数位数小于旧小数位数,那么此 ...

  3. java bigdecimal.round_down,java BigDecimal 的 setScale() 方法的 BigDecimal.ROUND_DOWN 舍入模式的BUG,坑...

    因为项目使用到 BigDecimal.ROUND_DOWN 接近零的舍入模式 ,没想到有一个 使用的坑. 下面来例子说明: String add = "67.80"; System ...

  4. Java使用BigDecimal的setScale方法进行百位向上取整

    int num = 199; BigDecimal bd = new BigDecimal(num); bd = bd.setScale(-2, BigDecimal.ROUND_DOWN); Sys ...

  5. java -- BigDecimal的setScale的几种用法

    setScale对BigDecimal类型的数值进行精度的处理. public BigDecimal setScale(int newScale, int roundingMode) {... } n ...

  6. ROUND_UP、ROUND_DOWN、ROUND_HALF_UP(BigDecimal四舍五入)、ROUND_HALF_DOWN

    BigDecimal的setScale常用方法(ROUND_UP.ROUND_DOWN.ROUND_HALF_UP.ROUND_HALF_DOWN) BigDecimal的setScale四大常用方法 ...

  7. Java中BigDecimal类常用方法,舍入策略

    标题 Java BigDecimal 的舍入模式 (RoundingMode)详解 提一下银行家算法 BigDecimal和BigInteger Java中BigDecimal常用方法 BigDeci ...

  8. bigdecimal正确用法_深入理解 BigDecimal 的使用

    什么是 BigDecimal BigDecimal 可以表示一个任意大小且精度完全准确的浮点数. 为什么用 BigDecimal 而不用 double Talk is cheap, Show me t ...

  9. BigDecimal用法之计算等额本金和等额本息

    一.引言 <EffactiveJava>中介绍float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算 ...

最新文章

  1. python中类似对象吗_在Python中,两个对象什么时候相同? - python
  2. virtualBox 创建新虚拟机
  3. (原創) 如何讓P7010外接螢幕支援1440x900(WXGA+)? (NB) (P7010)
  4. numpy.copy详解
  5. MySQL集群中主从切换
  6. 「SLAM」三维空间刚体运动名词笔记
  7. excel 2010 group and subtotal function
  8. jquery解析php json,Jquery解析json数据详解_jquery
  9. 系统软件设计原则_软件系统设计原则
  10. 陈一为担任BCF理事
  11. Python爬虫自学系列(四)
  12. 黑龙江等保测评机构项目测评收费价格标准参考
  13. ubuntu 安装视频下载器Annie
  14. 服务器协议 重发 回包 039,3情报板预置播放表、位图一览表.doc
  15. 【计算机毕业设计】092二手闲置交易市场系统
  16. 大数据技术之名词解释
  17. android水果购物车,实现购物车功能
  18. 九日集训 总结与展望
  19. P1873 砍树(二分查找模板)
  20. 【渝粤教育】电大中专计算机职业素养 (2)作业 题库

热门文章

  1. 1920 1080 壁纸
  2. oracle数据备份 恢复,Oracle数据备份和恢复
  3. 如何修改嵌入式服务器的端口号,Ai聘网之如何修改Spring Boot应用启动的嵌入式Tomcat的默认端口8080...
  4. python元组有啥用_python元组的用法
  5. 分享一个switch任天堂一体式手柄支持PD快充数据传输方案
  6. ESP8266模块使用
  7. php抓取数据并且保存到Excel
  8. ERP系统适合机械加工行业吗?有哪些应用?
  9. 多少事从来急,天地转光阴急
  10. 基于JAVA老年人健康饮食管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署