我想近似一个只显示小数点后两位数的数字。 我写了这个:
String result = String.valueOf(new BigDecimal(price).setScale(4, BigDecimal.ROUND_UP).doubleValue());
如果price
是一个十进制数字,如63,9222
,它可以正常工作。但是,如果price
等于7.00
,则会打印7.0
。
我尝试使用RoundingMode.CEILING
代替BigDecimal.ROUND_UP
,但它不起作用,我不知道为什么。也许最好使用Double而不是BigDecimal?
答案 0 :(得分:2)
使用String.format
double myValue = new BigDecimal(price).setScale(4, BigDecimal.ROUND_UP).doubleValue());
String result = String.format(Locale.ENGLISH, "%.2f", myValue);