【发布时间】:2017-10-26 18:47:44
【问题描述】:
在使用 DecimalFormat 格式化为字符串时,我需要保留数字的小数位数,特别是尾随零。我需要使用 DecimalFormat,因为我还需要避免使用科学记数法来处理大数,正如 here 所见,这是最好的方法。但是,正如您在那篇文章中看到的那样,提供的代码还删除了尾随零,而我想保留它们。
1.00 -> "1.00"
1.000 -> "1.000"
我见过很多涉及固定小数位数的问题,但在我的情况下,我需要考虑可变数量的小数位数。我研究了计算小数位数,但由于我的输入也可以是 Double(除了 BigDecimal),因此似乎没有可靠的方法来计算所有数字的小数点后的位数。 Double.toString() 不起作用,因为对于非常小和非常大的数字,双精度数会分解为指数符号。请参阅 here 了解有关为什么难以计算双精度数的更多信息。
【问题讨论】:
标签: java double bigdecimal decimalformat