我想将1256.3648转换为126.36(最多2位小数)
要实现此功能,我正在使用.setScale(2, BigDecimal.ROUND_HALF_UP));
但由于某些原因,它不起作用
有什么想法吗?
答案 0 :(得分:2)
你可以这样做
.setScale(2, RoundingMode.FLOOR);
假设您在BigDecimal
对象
将o / p
1256.36
如果您输入的是1256.3648
记住,
java.math.BigDecimal.setScale(int newScale, RoundingMode roundingMode)
会返回一个BigDecimal
,其比例是指定的 值,其未缩放值由乘以或确定 将此BigDecimal的未缩放值除以适当的幂 十,保持其整体价值。
答案 1 :(得分:2)
这是一个展示四舍五入的测试程序:
import java.math.BigDecimal;
public class Test {
public static void main(String[] args) {
BigDecimal x = new BigDecimal("1256.3648");
BigDecimal y = x.setScale(2,BigDecimal.ROUND_HALF_UP);
System.out.println(x);
System.out.println(y);
}
}
输出:
1256.3648
1256.36
x
未更改,但setScale
调用的结果已正确舍入。