我需要将从数据库中获取的BigDecimal
值(例如2.1200
)转换为字符串。使用BigDecimal
的toString()
或toPlainString()
方法只会输出值2.12
,而不是尾随的零。
如何将BigDecimal
转换为字符串而不丢失尾随零?
我需要将从数据库中获取的BigDecimal
值(例如2.1200
)转换为字符串。使用BigDecimal
的toString()
或toPlainString()
方法只会输出值2.12
,而不是尾随的零。
如何将BigDecimal
转换为字符串而不丢失尾随零?
MathContext mc = new MathContext(6); // 6 precision
BigDecimal bigDecimal = new BigDecimal(2.12000, mc);
System.out.println(bigDecimal.toPlainString());//2.12000
MathContext mc = new MathContext(6);
BigDecimal i = new BigDecimal(100.250, mc);
System.out.println(i.toPlainString());
如果我需要将从方法返回的BigDecimal对象转换为字符串,该怎么办?你在此处硬编码了值,对吧? - sparkerBigDecimal
转换为带有特定格式的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
(注:该链接提供了有关Java DecimalFormat类的详细信息,可用于格式化数字。)
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());
您可以使用以下代码。
BigDecimal d = new BigDecimal("1.200");
System.out.println(d);
System.out.println(String.valueOf(d));
输出如下:
1.200
1.200