大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。
/** * @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类型的话。我们可以实现所有正常的四舍五入.
不知什么原因详细信息.
版权声明:本文博主原创文章。博客,未经同意不得转载。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116901.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...