zoukankan      html  css  js  c++  java
  • java BigDecimal使用

    System.out.println(0.06+0.01);//0.06999999999999999
    
    System.out.println(0.6+0.1);//0.7  实际也不是这么精确,这是显示的假象
    BigDecimal addend = new BigDecimal(Double.valueOf(0.06));
    BigDecimal augend =
    new BigDecimal(Double.valueOf(0.01));
    BigDecimal result = addend.add(augend);
    System.
    out.println(q1 + result.doubleValue()); //结果不精确

    BigDecimal minuend =
    new BigDecimal("1.0); //正确
    BigDecimal subtrahend =
    new BigDecimal("0.42");
    result = minuend.subtract(subtrahend);
    System.
    out.println(q2 + result.doubleValue());

    BigDecimal multiplicand =
    new BigDecimal(4.015);
    BigDecimal multiplicator =
    new BigDecimal(100);
    result = multiplicand.multiply(multiplicator);
    System.
    out.println(q3 + result.doubleValue()); //结果也不精确
      BigDecimal中  a.add(b); 必须a 还是a, 必须 c = a.add(b), 有 C 存在,a 也可以
    减乘除其实最终都返回的是一个新的BigDecimal对象,因为BigInteger与BigDecimal都是不可变的(immutable)的,在进行每一步运算时,都会产生一个新的对象,所以a.add(b);虽然做了加法操作,但是a并没有保存加操作后的值,正确的用法应该是a=a.add(b);
  • 相关阅读:
    MySQL常用命令
    Jstack、Jmap命令简单使用
    MySQL慢查询日志ES索引模板
    MySQL二进制安装部署
    varnish启动报错
    基础训练 Sine之舞
    基础训练 FJ的字符串
    基础训练 芯片测试
    基础训练 龟兔赛跑预测
    基础训练 回形取数
  • 原文地址:https://www.cnblogs.com/qbmiller/p/6972033.html
Copyright © 2011-2022 走看看