当前位置: 首页 > 知识库问答 >
问题:

将BigDecimal格式化为最多2个小数位数的字符串,在小数部分移除0

秦焱
2023-03-14

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

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

我尝试使用格式化程序Formatter.format但我总是得到2个小数位数。

我怎么能这么做?也许正在处理bd.toPlainString()中的字符串

共有1个答案

荣轶
2023-03-14

我使用DecimalFormat来格式化BigDecimal,而不是格式化字符串,这似乎没有问题。

代码如下所示:

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);
 类似资料:
  • 问题内容: 我有一个BigDecimal数字,我只考虑它的2个小数位,所以我使用以下方法截断了它: 现在,我想将其打印为String,但是如果它为0,则删除小数部分,例如: 1.00-> 1 1.50-> 1.5 1.99-> 1.99 我尝试使用Formatter,formatter.format,但我总是得到2个十进制数字。 我怎样才能做到这一点?也许从bd.toPlainString()处理

  • 问题内容: 我正在处理应用程序中的许多双精度值,是否有任何简单的方法来处理Java中十进制值的格式? 还有其他比这更好的方法了吗 我基本上想做的是格式化double值,例如 问题答案: 实际上,你的模式有错误。你想要的是: 注意,恰好是两个小数位。 如果你使用(表示“可选”数字),它将删除尾随的零-即 ;仅打印,而不是。

  • 问题内容: 是否可以使用CSS格式化数字?即:小数位,小数点分隔符,千位分隔符等。 问题答案: 您可以使用。它也可以格式化为其他数字格式,例如拉丁文,阿拉伯文等。

  • 问题内容: 我希望实数是例如12.92,而不是12.9241。有可能这样做吗? 问题答案: 在PHP中,尝试 :

  • 问题内容: 我需要将浮点数格式化为“ n”个小数位。 试图使用BigDecimal,但返回值不正确… 我需要返回一个浮点数,该浮点数具有我指定的小数位数。 我不需要价值回报 问题答案: 你还可以传递float值,并使用:

  • 我有功能: 我需要一个函数,在“number”参数-将接收一个小数,舍入到小数位数(缩放参数),并返回字符串中的结果。有人知道怎么做吗?