BigDecimal的保留位数和四舍五入的方法

BigDecimal num = new BigDecimal(“2.225667”);//一般都会这样写最好

int count = num.scale();

System.out.println(count);//6 返回的是小数点后位数

  1. ROUND_DOWN

BigDecimal b = new BigDecimal(“2.225667”).setScale(2, BigDecimal.ROUND_DOWN);
System.out.println(b);//2.22 直接去掉多余的位数

  1. ROUND_UP

BigDecimal c = new BigDecimal(“2.224667”).setScale(2, BigDecimal.ROUND_UP);
System.out.println©;//2.23 跟上面相反,进位处理

  1. ROUND_CEILING

天花板(向上),正数进位向上,负数舍位向上

BigDecimal f = new BigDecimal(“2.224667”).setScale(2, BigDecimal.ROUND_CEILING);
System.out.println(f);//2.23 如果是正数,相当于BigDecimal.ROUND_UP

BigDecimal g = new BigDecimal("-2.225667").setScale(2, BigDecimal.ROUND_CEILING);
System.out.println(g);//-2.22 如果是负数,相当于BigDecimal.ROUND_DOWN

  1. ROUND_FLOOR

地板(向下),正数舍位向下,负数进位向下

BigDecimal h = new BigDecimal(“2.225667”).setScale(2, BigDecimal.ROUND_FLOOR);
System.out.println(h);//2.22 如果是正数,相当于BigDecimal.ROUND_DOWN

BigDecimal i = new BigDecimal("-2.224667").setScale(2, BigDecimal.ROUND_FLOOR);
System.out.println(i);//-2.23 如果是负数,相当于BigDecimal.ROUND_HALF_UP

  1. ROUND_HALF_UP

BigDecimal d = new BigDecimal(“2.225”).setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(“ROUND_HALF_UP”+d); //2.23 四舍五入(若舍弃部分>=.5,就进位)

  1. ROUND_HALF_DOWN

BigDecimal e = new BigDecimal(“2.225”).setScale(2, BigDecimal.ROUND_HALF_DOWN);
System.out.println(“ROUND_HALF_DOWN”+e);//2.22 四舍五入(若舍弃部分>.5,就进位)

  1. ROUND_HALF_EVEN

BigDecimal j = new BigDecimal(“2.225”).setScale(2, BigDecimal.ROUND_HALF_EVEN);
System.out.println(j);//2.22 如果舍弃部分左边的数字为偶数,则作 ROUND_HALF_DOWN

BigDecimal k = new BigDecimal(“2.215”).setScale(2, BigDecimal.ROUND_HALF_EVEN);
System.out.println(k);//2.22 如果舍弃部分左边的数字为奇数,则作 ROUND_HALF_UP

System.out.println("************************************");

System.out.println("4.05: "+new BigDecimal(“4.05”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//4.05: 4.0 down
System.out.println("4.15: "+new BigDecimal(“4.15”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//4.15: 4.2 up
System.out.println("4.25: "+new BigDecimal(“4.25”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//4.25: 4.2 down
System.out.println("4.35: "+new BigDecimal(“4.35”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//4.35: 4.4 up
System.out.println("4.45: "+new BigDecimal(“4.45”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//4.45: 4.4 down
System.out.println("4.55: "+new BigDecimal(“4.55”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//4.55: 4.6 up
System.out.println("4.65: "+new BigDecimal(“4.65”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//4.65: 4.6 down

System.out.println("3.05: "+new BigDecimal(“3.05”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//3.05: 3.0 down
System.out.println("3.15: "+new BigDecimal(“3.15”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//3.15: 3.2 up
System.out.println("3.25: "+new BigDecimal(“3.25”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//3.25: 3.2 down
System.out.println("3.35: "+new BigDecimal(“3.35”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//3.35: 3.4 up
System.out.println("3.45: "+new BigDecimal(“3.45”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//3.45: 3.4 down
System.out.println("3.55: "+new BigDecimal(“3.55”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//3.55: 3.6 up
System.out.println("3.65: "+new BigDecimal(“3.65”).setScale(1, BigDecimal.ROUND_HALF_EVEN));//3.65: 3.6 down

8.ROUND_UNNECESSARY

BigDecimal l = new BigDecimal(“2.215”).setScale(3, BigDecimal.ROUND_UNNECESSARY);
System.out.println(l);
//断言请求的操作具有精确的结果,因此不需要舍入。
//如果对获得精确结果的操作指定此舍入模式,则抛出ArithmeticException。

BigDecimal的保留位数和四舍五入的方法相关推荐

  1. MySQL对浮点数设置保留位数

    MySQL对浮点数设置保留位数 文章目录 MySQL对浮点数设置保留位数 FORMAT ROUND TRUNCATE CONVERT(类型转换函数) 有如下几个方法可以设置查询结果保留的位数 FORM ...

  2. Java中的BigDecimal比较大于小于等于,四舍五入保留几位(setScale方法详解),加减乘除取余

    本文主要讲解BigDecimal的比较运算,保留精度和取整和基础运算,BigDecimal与其他数据类型转换. 文章目录 比较运算 保留精度及取整 取整(保留0位小数) 保留精度 基础运算 BigDe ...

  3. java取模多位数_JAVA大数类—基础操作(加减乘除、取模、四舍五入、设置保留位数)...

    当基础数据类型长度无法满足需求时可以使用大数类 构造方法接受字符串为参数 1 BigInteger bInt = new BigInteger("123123");2 BigDec ...

  4. java工作笔记018---java中BigDecimal小数位数的四舍五入等操作

    技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 这个电视购物项目大量用到了BigDecimal,有钱内存大,哈哈 一.简介 Java在java.m ...

  5. java 常用四舍五入保留小数点后两位方法

    java 常用四舍五入保留小数点后两位方法 1 . Math.round double num = Math.round(5.2544555 * 100) * 0.01; System.out.pri ...

  6. php保留一位小数不四舍五入,PHP保留小数点后一位并且不四舍五入的方法

    PHP保留小数点后一位并且不四舍五入的方法 发布时间:2020-08-21 10:39:26 来源:亿速云 阅读:119 作者:小新 小编给大家分享一下PHP保留小数点后一位并且不四舍五入的方法,相信 ...

  7. java double 保留小数_java使double类型保留两位小数的方法

    java使double类型保留两位小数的方法 本文是百分网小编整理的主要介绍关于java使double类型保留两位小数的方法,有需要的朋友们一起看看吧!想了解更多相关信息请持续关注我们应届毕业生考试网 ...

  8. bool转nsnumber ios_iOS开发之NSDecimalNumber的使用,货币计算/精确数值计算/保留位数等...

    iOS开发NSDecimalNumber的使用,货币计算/精确数值计算/保留位数等 NSDecimalNumber NSDecimalNumber,不可变NSNumber 的子类,提供了一个面向对象的 ...

  9. Double转BigDecimal并保留两位小数出现异常: java.lang.ArithmeticException: Rounding necessary

    分享知识 传递快乐 Double 转 BigDecima l并保留两位小数出现异常: java.lang.ArithmeticException: Rounding necessary . 代码如下: ...

  10. java精确小数位数的几种方法

    java中精确小数位数的几种方法 /* * 这里假设精确到小数点后5位 */ public class AccurateDecimalPart { public static void main(St ...

最新文章

  1. html 复选框 mysql_Html:实现带复选框的下拉框(一)
  2. java中从str1中删除所有str2_Java中str1.equals(str2)和str1==str2的区别
  3. Nginx性能优化功能- Gzip压缩(大幅度提高页面加载速度)
  4. python接口自动化(三十六)-封装与调用--流程类接口关联续集(详解)
  5. 软件_避免用chrome进行网站配置调试[博]
  6. 电商平台实战经验:电商中的Hadoop生态系统应用
  7. 华为手机耳机sws音效是什么_耳机sws音效是什么 华为手机耳机sws音效是什么
  8. 201671030119 唐盖强 实验十四 课程学习总结
  9. Noip2013错误避免
  10. 谷歌电子市场第4天总结
  11. 查看APK文件源代码
  12. 第二天 熟悉ue4工具 及快捷键
  13. [笔记] 关于KAG3中宏参数的类型
  14. 机房管理系列之电话交换机
  15. MATLAB--微分方程
  16. 2023第八届少儿模特明星盛典 小超模刘子衿 担任全球赛代言人
  17. PCIE Capability ID
  18. Jetpack MVVM 七宗罪之四: 使用 LiveData/StateFlow 发送 Events
  19. 《The Science of Scientific Writing》读书笔记
  20. np.where函数的使用

热门文章

  1. Javascript 使用Qunit单元测试
  2. Map3D/MapGuide API中如何计算两点间的距离?
  3. Bzoj1324 Exca王者之剑
  4. 利用反射生成SQL语句
  5. 多租户数据架构以及hibernate支持(Multi-TenantDataArchitecture)
  6. SQLServer2008设置 开启INTERNET远程连接(转)
  7. 7. Nginx 预定义变量
  8. 23. Linux 主机上的用户信息传递
  9. 46. 避免 CSS 表达式(7)
  10. 60. cache