java - BigDecimal 的 DecimalFormat 模式。

标签 java formatting bigdecimal

我应该使用哪种 DecimalFormat 模式,以便当我格式化 BigDecimals 时

new BigDecimal("4235886589.00000");
new BigDecimal("4235886589.0000030000");
new BigDecimal("4235886589.0");
new BigDecimal("4235886589");

输出必须具有以下外观:

4,235,886,589.00000;  4,235,886,589.0000030000; 4,235,886,589.0; 4,235,886,589;

所以基本上我正在尝试编写一种模式,它最终不会切断零,并且如果不需要的话也不会放置它们。我尝试用模式来处理它:

DecimalFormat formatter = new DecimalFormat("#,###,##0.########");
DecimalFormat formatter = new DecimalFormat("#,###,##0.000000");

但是第一个格式化程序会截掉零,而第二个格式化程序会将它们放在不需要的地方。

最佳答案

我认为您不能使用格式化程序直接完成此操作。您可以做的是将 Decimal 包装在一个类中,您可以在其中存储实例化时计算的适当格式字符串:

class MyBigDecimal {
  String asString;
  BigDecimal n;

  public MyBigDecimal(String asString) {
    this.asString = asString;
    n = new BigDecimal(asString);
  }
}

关于java - BigDecimal 的 DecimalFormat 模式。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31536198/

相关文章:

java - 大十进制 : HALF_UP rounding with setScale

java - Java 中的 Zalgo 文本?

java - 没有用于方案的文件系统:null

formatting - 贾斯珀报告 : how to tell if a field is pushed onto next page

python - 在 python 中保持格式的同时将字符串列表转换为整数

linux - 使用 `sed` 的奇怪行为

JavaFX程序运行,但仍然出现异常

java - BigDecimal 减法结果为负

java - servlet 上下文的多个动态数据源

java - 如何更改 itext 中列表的字体大小和颜色?