res*_*es1 73 java formatting bigdecimal
我有一个BigDecimal数字,我只考虑它的2位小数,所以我截断它使用:
bd = bd.setScale(2, BigDecimal.ROUND_DOWN)
Run Code Online (Sandbox Code Playgroud)
现在我想将它打印为String但是如果它是0则删除小数部分,例如:
1.00 - > 1
1.50 - > 1.5
1.99 - > 1.99
我尝试使用Formatter,formatter.format,但我总是得到2位小数.
我怎样才能做到这一点?也许从bd.toPlainString()处理字符串?
res*_*es1 93
我使用DecimalFormat格式化BigDecimal而不是格式化String,似乎没有问题.
代码是这样的:
bd = bd.setScale(2, BigDecimal.ROUND_DOWN);
DecimalFormat df = new DecimalFormat();
df.setMaximumFractionDigits(2);
df.setMinimumFractionDigits(0);
df.setGroupingUsed(false);
String result = df.format(bd);
Run Code Online (Sandbox Code Playgroud)
小智 62
new DecimalFormat("#0.##").format(bd)
Run Code Online (Sandbox Code Playgroud)
Par*_*uti 11
以下代码可能对您有所帮助.
protected String getLocalizedBigDecimalValue(BigDecimal input, Locale locale) {
final NumberFormat numberFormat = NumberFormat.getNumberInstance(locale);
numberFormat.setGroupingUsed(true);
numberFormat.setMaximumFractionDigits(2);
numberFormat.setMinimumFractionDigits(2);
return numberFormat.format(input);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
153014 次 |
最近记录: |