将BigDecimal转换为String时如何保留尾随零

时间:2015-06-17 13:56:53

标签: java bigdecimal

我必须转换BigDecimal值,例如2.1200,从数据库到字符串。当我使用toString()的{​​{1}}或toPlainString()时,它只打印值BigDecimal,但不打印尾随零。

如何在不丢失尾随零的情况下将2.12转换为字符串?

6 个答案:

答案 0 :(得分:2)

试试这个..

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

答案 1 :(得分:1)

要将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

答案 2 :(得分:0)

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());

答案 3 :(得分:0)

您可以使用以下代码。

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

输出如下:
1.200 1.200

答案 4 :(得分:0)

以一种实用的方式,只是不使用BigDecimal,而是使用Double类的toString()。

答案 5 :(得分:-1)

也许setScale()会有所帮助:

BigDecimal d = new BigDecimal(2.12);
BigDecimal d1 = d.setScale(4)

然后拨打toPlainString以获取您期望的字符串。