我想将十进制数舍入到最接近的自然数。 例如:
public static void main(String[] arguments){
BigDecimal a=new BigDecimal("2.5");
BigDecimal b=new BigDecimal("0.5");
System.out.println(a.round(new MathContext(1,RoundingMode.UP)));
System.out.println(b.round(new MathContext(1,RoundingMode.UP)));
}
预期输出
3
1
实际输出
3
0.5
问题是数字0.5被舍入为0.5而不是1 如何将BigDecimal舍入小于1
答案 0 :(得分:2)
这会做你想要的......
BigDecimal a=new BigDecimal("2.5");
BigDecimal b=new BigDecimal("0.5");
System.out.println(Math.round(a.doubleValue()));
System.out.println(Math.round(b.doubleValue()));
这将为您输出3 and 1
...
答案 1 :(得分:1)
类似的东西:
BigDecimal intvalue= new BigDecimal("0.5");
intvalue = intvalue.setScale(0, RoundingMode.HALF_UP);
答案 2 :(得分:1)
BigDecimal b=new BigDecimal("0.5");
b = b.setScale(0,BigDecimal.ROUND_HALF_UP);
System.out.println(b.round(MathContext.DECIMAL32));
答案 3 :(得分:1)
您可以使用以下代码将BigDecimal舍入小于1。
BigDecimal a = new BigDecimal("2.5");
BigDecimal b = new BigDecimal("0.5");
System.out.println(a.setScale(0, RoundingMode.UP));
System.out.println(b.setScale(0, RoundingMode.UP));
答案 4 :(得分:0)
System.out.println(Math.round(b.doubleValue()));