如何在不考虑Java中连续小数位的权重的情况下获得数字的前2位小数?

时间:2014-12-16 11:16:22

标签: java bigdecimal

在Java中,我有一个 Number 对象,可以有十进制数字。

例如,它可能类似于: 123.456789

123 是我的数字的整数部分, 456789 是小数部分。

确定。如何在不考虑连续小数位的权重的情况下,只获得前2位小数的相同数字。

例如,如果我想要的数字只有前2个小数位,我想获得 123.45 而不是 123.46 (近似,因为下面的小数位是> 5)

我还需要,如果我的整数是 3 我希望用它的2个小数位数来获得它,即 3.00

我该怎么办?

2 个答案:

答案 0 :(得分:2)

尝试下面的setScale方法

BigDecimal value = new BigDecimal("123.456789");
BigDecimal bg2 = value.setScale(2, RoundingMode.DOWN);
System.out.println(bg2);

Output:
123.45

For input as 3, output is 3.00

答案 1 :(得分:0)

DecimalFormat decimalFormat = new DecimalFormat("#.##");
decimalFormat.setRoundingMode(RoundingMode.DOWN);
decimalFormat.format(123.456789);

输出:123.45

输入为3时,输出为3