0

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

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 会更好?

4

1 回答 1

2

利用String.format

double myValue = new BigDecimal(price).setScale(4, BigDecimal.ROUND_UP).doubleValue());
String result = String.format(Locale.ENGLISH, "%.2f", myValue);
于 2013-06-12T12:35:58.210 回答