如何舍入小于 1 的 BigDecimal
How to round BigDecimal smaller than 1
我想将十进制数舍入到最接近的自然数。
示例:
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
如何舍入小于 1 的 BigDecimal
这会做你想做的...
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
...
System.out.println(Math.round(b.doubleValue()));
类似于:
BigDecimal intvalue= new BigDecimal("0.5");
intvalue = intvalue.setScale(0, RoundingMode.HALF_UP);
BigDecimal b=new BigDecimal("0.5");
b = b.setScale(0,BigDecimal.ROUND_HALF_UP);
System.out.println(b.round(MathContext.DECIMAL32));
您可以使用以下代码将 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));
我想将十进制数舍入到最接近的自然数。 示例:
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 如何舍入小于 1 的 BigDecimal
这会做你想做的...
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
...
System.out.println(Math.round(b.doubleValue()));
类似于:
BigDecimal intvalue= new BigDecimal("0.5");
intvalue = intvalue.setScale(0, RoundingMode.HALF_UP);
BigDecimal b=new BigDecimal("0.5");
b = b.setScale(0,BigDecimal.ROUND_HALF_UP);
System.out.println(b.round(MathContext.DECIMAL32));
您可以使用以下代码将 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));