android大十进制近似

时间:2013-06-12 12:29:17

标签: android numbers bigdecimal

我想近似一个只显示小数点后两位数的数字。 我写了这个:

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?

1 个答案:

答案 0 :(得分:2)

使用String.format

double myValue = new BigDecimal(price).setScale(4, BigDecimal.ROUND_UP).doubleValue());
String result = String.format(Locale.ENGLISH, "%.2f", myValue);