Avatar ·

如何在Java中将数字四舍五入到N位小数?

大家好!我是Java新手,在处理小数时遇到了问题。我需要在进行数学运算后,数字以指定的小数位数显示。例如,我计算平均值并希望结果保留两位小数:5.67,而不是5.6748912。 我试过使用`System.out.printf("%.2f", number)`,但这只用于输出。我需要将数字本身四舍五入以用于后续计算。我尝试这样做: ```java double value = 5.6748912; double rounded = Math.round(value * 100) / 100; System.out.println(rounded); // 输出5.0,而不是5.67! ``` 为什么会这样?我乘以100,四舍五入,再除以100——应该有效。显然我遗漏了什么。我也听说过`BigDecimal`,但不知道如何正确使用。请告诉我一个可靠的方法,适用于任何数字(正数和负数)且不会丢失精度。提前谢谢! <<>>

为什么