我必须在2个地方使用不同的格式设置BigDecimal值。

第一名:
如果有尾随零,则十进制后只有一位,如果没有,则将模式设为下限

eg.
1250.348 -> 1250.34
1250.0000 -> 1250.0
1250.50 -> 1250.5


所以,我正在尝试这样的事情

BigDecimal value = new BigDecimal("1250.348");
value = value.setScale(2, RoundingMode.FLOOR); //I get 1250.34 which is proper


但是它不适用于1250.50或1250.000

第二个:
我只想删除小数点后的所有零

1250.000->1250
1250.50->1250.5


有人可以告诉我该怎么做吗?

最佳答案

使用DecimalFormat。在第一种情况下,您需要格式模式0.0#

import java.text.DecimalFormat;

DecimalFormat formatter = new DecimalFormat("0.0#");
formatter.setRoundingMode(RoundingMode.FLOOR);

formatter.format(new BigDecimal("1250.348"));


在第二种情况下,您将要使用格式模式0.##

08-05 20:44