/**
* 四舍五入
* @date 2013-5-10上午11:53:29
* @author Kevin
* @param f 参数
* @param rang 保留小数位数
* @return
*/
private static double round(double f, int rang) {
BigDecimal b = new BigDecimal(f);
double f1 = b.setScale(rang, BigDecimal.ROUND_HALF_UP).doubleValue();
return f1;
}补充阅读#
解释 Java 示例怎样用 BigDecimal 保留小数位,并补充浮点输入和舍入方式的注意事项。
如何理解与使用#
原方法的 rang 表示小数位数,返回值仍是 double,因此保留两位小数不代表输出时一定显示两个尾随零。展示格式与数值计算需要分开处理。
验证与边界#
new BigDecimal(double) 会保留二进制浮点近似值;十进制业务输入可优先使用字符串构造或 valueOf。新代码使用 RoundingMode.HALF_UP 表达舍入规则,测试时覆盖负数、边界值与尾随零。
参考:BigDecimal(本次补充核对)。
