zoukankan      html  css  js  c++  java
  • double相乘少一分的问题,BigDecimal参数传小数也会出问题

    
    
    public static void main(String[] args) {
        System.out.println(String.valueOf((int) (19.9 * 100))); //1989
       double aa = 19.9;
        double bb = 100;
        System.out.println(aa*bb); //1989.9999999999998
        BigDecimal v1 = new BigDecimal("19.9");
        BigDecimal v2 = new BigDecimal("100");
        Double v = v1.multiply(v2).doubleValue();
      System.out.println(v.intValue()); //1990
        System.out.println(v); //1990.0
    
        BigDecimal b1 = new BigDecimal(19.9);
        BigDecimal b2 = new BigDecimal(100);
        System.out.println(b1);  //19.89999999999999857891452847979962825775146484375
        Double b = b1.multiply(b2).doubleValue();
        System.out.println(b.intValue()); //1989
        System.out.println(b); //1989.9999999999998
    }
    
    
    
    


    结论就是小数相乘,要使用BigDecimal且构造参数传入字符串
  • 相关阅读:
    mysql索引、group by、explain、insert delayed
    mysql学习笔记
    Handler
    文件操作
    RatingBar
    ListView(二)
    文件管理函数的草稿
    SAX解析XML
    phpunit
    Service(一)
  • 原文地址:https://www.cnblogs.com/wgb123/p/12912321.html
Copyright © 2011-2022 走看看