我必须转换BigDecimal
值,例如2.1200
,从数据库到字符串。当我使用toString()
的{{1}}或toPlainString()
时,它只打印值BigDecimal
,但不打印尾随零。
如何在不丢失尾随零的情况下将2.12
转换为字符串?
答案 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
以获取您期望的字符串。