【问题标题】:How to retain trailing zeroes when converting BigDecimal to String将 BigDecimal 转换为 String 时如何保留尾随零
【发布时间】:2015-06-17 13:56:53
【问题描述】:

我必须转换一个 BigDecimal 值,例如2.1200,来自数据库的字符串。当我使用BigDecimal 的toString() 或toPlainString() 时,它只打印值2.12 而不是尾随零。

如何将BigDecimal 转换为字符串而不丢失尾随零?

【问题讨论】:

标签: java bigdecimal


【解决方案1】:

试试这个..

MathContext mc = new MathContext(6); // 6 precision
BigDecimal bigDecimal = new BigDecimal(2.12000, mc);
System.out.println(bigDecimal.toPlainString());//2.12000

【讨论】:

  • 当他手头有一个 BigDecimal 时,这并不能回答 OP 的问题。 . .
  • 是的,这是我的错误,现在看看我的回答@GingerHead btw 谢谢!!
  • 这假定 6 始终是所需的精度。
  • 它对我不起作用.. 下面的代码打印“100.25”MathContext mc = new MathContext(6); BigDecimal i = new BigDecimal(100.250, mc); System.out.println(i.toPlainString()); 如果我必须将从方法返回的 BigDecimal 对象转换为 String 怎么办?你在这里硬编码了值吗?
  • 是的@PadmanabhanVijendran,精度是硬编码的。我没有告诉你有关转换的信息。请详细说明或发布一个新问题,说明您尝试了什么、取得了什么成就以及您面临的问题。
【解决方案2】:

要将BigDecimal 转换为具有特定模式的String,您需要使用DecimalFormat。

BigDecimal value = .... ;
String pattern = "#0.0000"; // If you like 4 zeros
DecimalFormat myFormatter = new DecimalFormat(pattern);
String output = myFormatter.format(value);
System.out.println(value + " " + pattern + " " + output);

要检查模式的可能值,请参见此处DecimalFormat

【讨论】:

  • 你能指定value是什么吗?
  • 值是您的 BigDecimal。我编辑了答案以显示它
  • 我确切地知道它是什么。 . .
【解决方案3】:
double value = 1.25;
// To convet double to bigdecimal    
BigDecimal bigDecimalValue = BigDecimal.valueOf(value);   
//set 4 trailing value
BigDecimal tempValue = bigDecimalValue.setScale(4, RoundingMode.CEILING);
System.out.println(tempValue.toPlainString());

【讨论】:

    【解决方案4】:

    你可以使用下面的代码。

        BigDecimal d = new BigDecimal("1.200");
        System.out.println(d);
        System.out.println(String.valueOf(d));
    

    输出如下:
    1.200 1.200

    【讨论】:

      【解决方案5】:

      实际上,不要使用BigDecimal,而是使用Double类的toString()。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-02
        相关资源
        最近更新 更多