• BigDecimal简单说


     1) 浮点数的舍弃规则; 假设小数点后保留两位

                 RoundingMode.CEILING:向正无穷大的方向舍入;  1.245 → 1.25   -1.245 → -1.24

                 RoundingMode.DOWN:去掉保留位数后面的部分;     1.245 → 1.24     -1.245 → -1.24

                 RoundingMode.FLOOR:取左边最近的正数。1.245 → 1.24   -1.244 → -1.25

                 RoundingMode.HALF_DOWN:五舍六入,负数先取绝对值再五舍六入再负数        1.245 → -1.25          1.246 → 1.25      -1.245 → -1.24             -1.246 → -1.25

                RoundingMode.HALF_UP:四舍五入,负数原理同上 

                RoundingMode.HALF_EVEN:这个比较绕,若舍入位左边是奇数则四舍五入,若是偶数则五舍六入; 1.245 → 1.24    1.255 → 1.26

                

         2) BigDecimal用法

              java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算。双精度浮点型变量double可以处理16位有效数。BigDecimal所创建的是对象,我们不能使用传统的+、-、*、/等算术运算符直接对其对象进行数学运算,而必须调用其相对应的方法;

             public BigDecimal add(BigDecimal value);//加法
             public BigDecimal subtract(BigDecimal value);//减法 
             public BigDecimal multiply(BigDecimal value);//乘法
             public BigDecimal divide(BigDecimal value);//除法

             BigDecimal的运算都没有对原值进行操作,而是返回一个新的BigDecimal对象,这点可能有些小伙伴会搞错要注意一下。

           

          BigDecimal的比较用的是BigDecimal的compareTo方法,将此 BigDecimal 与指定的 BigDecimal 比较。根据此方法,值相等但具有不同标度的两个BigDecimal对象(如,2.0 和 2.00)被认为是相等的。当此 BigDecimal 在数字上小于、等于或大于被比较对象时,返回 -1、0 或 1。

          

  • 相关阅读:
    SpringMVC请求参数接收总结(一)
    不用 Spring Security 可否?试试这个小而美的安全框架
    @ConfigurationProperties 注解使用姿势,这一篇就够了
    Spring Aware 到底是什么?
    git rebase VS git merge? 更优雅的 git 合并方式值得拥有
    Spring Bean 生命周期之destroy——终极信仰
    面试还不知道BeanFactory和ApplicationContext的区别?
    Java设计模式学习记录-享元模式
    Java设计模式学习记录-外观模式
    Java设计模式学习记录-装饰模式
  • 原文地址:https://www.cnblogs.com/leavescy/p/9670609.html
Copyright © 2020-2023  润新知