zoukankan      html  css  js  c++  java
  • BigDecimal运算

    BigDecimal由任意精度整数未缩放值和32位整数级别组成 。 如果为零或正数,则刻度是小数点右侧的位数。 如果是负数,则数字的非标定值乘以10,以达到等级的否定的幂。 因此,BigDecimal所代表的BigDecimal值为(unscaledValue × 10-scale) 。
     
    创建BigDecimal对象:
        BigDecimal b = new BigDecimal("2.12");
        BigDecimal b1 = newBigDecimal(Double.toString(1.234));
        BigDecimal b2 = BigDecimal.valueOf(1.234);    //可能出现精度问题
     
    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。
     
    BigDecimal.setScale()方法用于格式化小数点
    setScale(1)表示保留一位小数,默认用四舍五入方式 
    setScale(1,BigDecimal.ROUND_DOWN)直接删除多余的小数位,如2.35会变成2.3 
    setScale(1,BigDecimal.ROUND_UP)进位处理,2.35变成2.4 
    setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35变成2.4
    setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35变成2.3,如果是5则向下舍
  • 相关阅读:
    Hibernate 缓存机制
    Java 对象的串行化(Serialization)
    Java HashMap的死循环
    大牛给计算机专业学生的 7 个建议
    手机的未来
    Java虚拟机类加载机制
    JAVA中的数组是对象吗?
    JAVA中toString方法的作用
    探索哪个进程使磁盘I/O升高
    Linux运维之如何查看目录被哪些进程所占用,lsof命令、fuser命令
  • 原文地址:https://www.cnblogs.com/gqymy/p/9414562.html
Copyright © 2011-2022 走看看