我必须在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.##
。