将BigDecimal格式化为String,最大2个十进制数字,在小数部分删除0

res1:

我有一个BigDecimal数字,我只考虑它的2个小数位,所以我使用以下方法截断了它:

bd = bd.setScale(2, BigDecimal.ROUND_DOWN)

现在,我想将其打印为String,但是如果它为0,则删除小数部分,例如:

1.00-> 1

1.50-> 1.5

1.99-> 1.99

我尝试使用Formatter,formatter.format,但我总是得到2个十进制数字。

我怎样才能做到这一点?也许从bd.toPlainString()处理字符串?

res1:

我用DecimalFormat格式化BigDecimal而不是格式化String,似乎没有问题。

代码是这样的:

bd = bd.setScale(2, BigDecimal.ROUND_DOWN);

DecimalFormat df = new DecimalFormat();

df.setMaximumFractionDigits(2);

df.setMinimumFractionDigits(0);

df.setGroupingUsed(false);

String result = df.format(bd);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将十进制数字格式化为2或3位数字?

将数字(十进制)值格式化为日期

如何将timedelta微秒格式设置为2个十进制数字?

将数字字符串格式化为2个十进制双精度字,与数字字符串长度无关

将十进制格式化为长度为9的字符串,在'。'之前加2位数字(填充0)。然后是6

NiFi十进制数字格式

设置十进制数字格式

将具有 1 个十进制数字的双数转换为 2 个数字

自动舍入得到2个十进制数字

用数字分组格式化十进制数字并限制数字位数

零小数和非零小数的 XSLT 1.0 十进制数字格式

在Primefaces 4中显示格式化的十进制数字

如何格式化十进制数字以显示前导零而不显示尾随的?

如何在 QSqlTableModel 中使用十进制数字格式化列

Oracle:格式化要显示的十进制数字

BigDecimal对于大于7或0的十进制数字给出意外结果

如何将浮点数很好地格式化为String而没有不必要的十进制0?

Java大十进制数字格式异常

本地化十进制数字格式

SQL Server。如何考虑所有十进制数字的十进制小数

C找不到sqrt {2}的第十个十进制数字

将十进制数字转换为一个数字,最后一位数字在小数点后一位

将JavaScript中的十进制数字表示为C中的“%g”格式

PHP:将数字四舍五入为16个十进制数字

将十进制格式格式化为字符串以提高性能

将双精度值四舍五入为2个十进制数字

将数据类型更改为浮点并四舍五入为2个十进制数字

如何从mysql的结果中删除十进制数字?

删除包含十进制数字的行