• 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则向下舍
  • 相关阅读:
    关于排列问题的一系列归类
    [翻译] 服务定位器是反模式
    [翻译] Autofac 入门文档
    关系,表和封闭世界假定
    Elasticsearch实现类似 like '?%' 搜索
    LVS + keepalived(DR) 实战
    kafka集群中常见错误的解决方法:kafka.common.KafkaException: Should not set log end offset on partition
    Elasticsearch1.7服务搭建与入门操作
    Ubuntu下安装Tomcat7
    VB编程技巧推荐
  • 原文地址:https://www.cnblogs.com/gqymy/p/9414562.html
Copyright © 2020-2023  润新知