zoukankan      html  css  js  c++  java
  • JAVA经BigDecimal圆角的解决方案及注意事项

     /**
         * @Description: 四舍五入住宿2小数位数
         * @param valueName
         * @return
         */
        public static Double formateDouble45(Double d){
            if(d == null){
                return 0d;
            }
            BigDecimal   b   =   new   BigDecimal(d);
            double   f   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();
            return f;
        }
    
    
    上面是曾经我写的一个四舍五入保留2位小数的方法。近期发现是有问题的
    
    比如:2.555 得到是2.55 而不是预想的2.56
    
    改进例如以下:
    
    <pre name="code" class="java">    /**
    	 * @Description: 四舍五入留2位小数
    	 * @param valueName
    	 * @return
    	 */
    	public static Double formateDouble45(Object d){
    		if(d == null){
    			return 0d;
    		}
    		BigDecimal   b   =   new   BigDecimal(d.toString());
    		double   f   =   b.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();
    		return f;
    	}

    通过測试发现假设构建BugDecimal的时候使用String类型的话。我们可以实现所有正常的四舍五入.
    不知什么原因详细信息.
    
        
            

    版权声明:本文博主原创文章。博客,未经同意不得转载。

  • 相关阅读:
    如何掌握所有的程序语言
    程序与证明
    卫星通信地面系统构成
    SCIP 环境搭建
    Homebrew install.sh
    macOS 内核之从 I/O Kit 电量管理开始
    matlab练习程序(空间椭圆拟合)
    多进程抢票加锁
    进程间数据传递
    队列用法
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4841263.html
Copyright © 2011-2022 走看看