码迷,mamicode.com
首页 > 编程语言 > 详细

JAVA经BigDecimal圆角的解决方案及注意事项

时间:2015-09-26 21:09:25      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

 /**
     * @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类型的话。我们可以实现所有正常的四舍五入.
不知什么原因详细信息.

    
        

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

JAVA经BigDecimal圆角的解决方案及注意事项

标签:

原文地址:http://www.cnblogs.com/yxwkf/p/4841263.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!