zoukankan      html  css  js  c++  java
  • BigDecimal 学习比较

        /**
         * 解决精度的问题
         */
        @Test
        void testBigDecimal() {
    
            /**
             * no problem
             */
            System.out.println(new BigDecimal("1225.12").setScale(2));
            System.out.println(new BigDecimal("1225.1").setScale(2));
            System.out.println(new BigDecimal("1225").setScale(2));
    
            /**
             * has problem
             */
            System.out.println(new BigDecimal("1225.120").setScale(2)); // ok
    
            /**
             * error : java.lang.ArithmeticException: Rounding necessary
             * solution : 设置舍入模式, 使用 setScale(int newScale, RoundingMode roundingMode); 方法
             */
            System.out.println(new BigDecimal("1225.121").setScale(2)); // error
            System.out.println(new BigDecimal("1225.121").setScale(2, BigDecimal.ROUND_HALF_UP)); // right
            System.out.println(new BigDecimal("1225.121").setScale(2, RoundingMode.HALF_UP)); // right
    
        }
    

      

  • 相关阅读:
    Arduino
    DTU
    现代信号处理与应用
    matlab学习记录
    列车准点节能操纵
    泊松过程
    序号生成算法odoo
    操作系统特性
    c语言中的变量
    xml中的四则运算与时间爱格式
  • 原文地址:https://www.cnblogs.com/zhujunhuawoaini/p/11063926.html
Copyright © 2011-2022 走看看