zoukankan      html  css  js  c++  java
  • BigDecimal注意点

    1.计算的时候要用new BigDecimal(String)的方式,所以如果初始化BigDecimal为0,使用new BigDecimal("0.00"),至于用BigDecial.Zero干净一点会不会影响计算不太清楚……。

    System.out.println(new BigDecimal(0.1).add(new BigDecimal(0.2)));  // 0.3000000000000000166533453693773481063544750213623046875
    System.out.println(new BigDecimal(1.0).subtract(new BigDecimal(0.8))); // 0.1999999999999999555910790149937383830547332763671875
    System.out.println(new BigDecimal(4.015).multiply(new BigDecimal(100)));  // 401.49999999999996802557689079549163579940795898437500
    System.out.println(new BigDecimal(123.3).divide(new BigDecimal(100)));  // 1.232999999999999971578290569595992565155029296875

    2.BigDecimal的比较值使用compareTo,而不是equals。因为BigDecimal的equals不仅仅比较值相等,还有精度也参与了比较。

    System.out.println(new BigDecimal("100").equals(new BigDecimal("100"))); // true
    System.out.println(new BigDecimal("100.0").equals(new BigDecimal("100"))); // false

    3.BigDecimal之间的操作,其结果的精度(即scale):

    add:取最大的

    substract:取最大的

    multiply:相加

    divide:相减

    System.out.println(new BigDecimal("100.00").add(new BigDecimal("100.0000")));  // 200.0000
            System.out.println(new BigDecimal("100.00").subtract(new BigDecimal("100.0000"))); // 0.0000
            System.out.println(new BigDecimal("100.0000").divide(new BigDecimal("100.00")));  // 1.00
            System.out.println(new BigDecimal("100.0000").multiply(new BigDecimal("100.00")));  // 10000.000000
  • 相关阅读:
    JS复制内容到剪切板
    mysql root密码的重设方法(转)
    php生成excel文件示例代码(转)
    php读取文件内容的三种方式(转)
    使用火蜘蛛采集器Firespider采集天猫商品数据并上传到微店
    Mac Android8.0源码编译笔记
    开源 高性能 高可用 可扩展
    开源 模式
    开源 算法 数据结构
    mdb
  • 原文地址:https://www.cnblogs.com/woyujiezhen/p/14159730.html
Copyright © 2011-2022 走看看