Rounding Bigdecimal values with 2 Decimal Places

后端 未结 4 833
太阳男子
太阳男子 2020-12-15 15:44

I want a function to convert Bigdecimal 10.12 for 10.12345 and 10.13 for 10.12556. But no function is satisfying both conversion in same t

4条回答
  •  遥遥无期
    2020-12-15 16:29

    You may try this:

    public static void main(String[] args) {
        BigDecimal a = new BigDecimal("10.12345");
        System.out.println(toPrecision(a, 2));
    }
    
    private static BigDecimal toPrecision(BigDecimal dec, int precision) {
        String plain = dec.movePointRight(precision).toPlainString();
        return new BigDecimal(plain.substring(0, plain.indexOf("."))).movePointLeft(precision);
    }
    

    OUTPUT:

    10.12
    

提交回复
热议问题