2年前,我正在Java中处理统计学,我仍然得到了一个函数的代码,该函数允许您将数字四舍五入到您想要的小数位数。现在你需要两个,但也许你想尝试用3来比较结果,这个函数给了你这种自由。
/**
* Round to certain number of decimals
*
* @param d
* @param decimalPlace
* @return
*/
public static float round(float d, int decimalPlace) {
BigDecimal bd = new BigDecimal(Float.toString(d));
bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP);
return bd.floatValue();
}
您需要决定是向上舍入还是向下舍入。在我的示例代码中,我正在四舍五入。
希望它有帮助。
编辑
如果你想在小数为零时保留小数位数(我猜它只是为了向用户显示),你只需要将函数类型从浮点数更改为BigDecimal,如下所示:
public static BigDecimal round(float d, int decimalPlace) {
BigDecimal bd = new BigDecimal(Float.toString(d));
bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP);
return bd;
}
然后以这种方式调用该函数:
float x = 2.3f;
BigDecimal result;
result=round(x,2);
System.out.println(result);
这将打印:
2.30