Java BigDecimal: Round to the nearest whole value

后端 未结 6 743
滥情空心
滥情空心 2020-11-27 16:41

I need the following results

100.12 -> 100.00
100.44 -> 100.00
100.50 -> 101.00
100.75 -> 101.00

.round() or

6条回答
  •  眼角桃花
    2020-11-27 17:31

    If i go by Grodriguez's answer

    System.out.println("" + value);
    value = value.setScale(0, BigDecimal.ROUND_HALF_UP);
    System.out.println("" + value);
    

    This is the output

    100.23 -> 100
    100.77 -> 101
    

    Which isn't quite what i want, so i ended up doing this..

    System.out.println("" + value);
    value = value.setScale(0, BigDecimal.ROUND_HALF_UP);
    value = value.setScale(2, BigDecimal.ROUND_HALF_UP);
    System.out.println("" + value);
    

    This is what i get

    100.23 -> 100.00
    100.77 -> 101.00
    

    This solves my problem for now .. : ) Thank you all.

提交回复
热议问题