我试图将毫秒显示为秒,同时保留小数点,例如我有 1234 毫秒,我想将其显示为 1.234 秒。
Decimal duration = 1234;
NumberFormat formatter = new DecimalFormat("#0.000");
String durationStr = formatter.format(duration / 1000);
有什么建议吗?
最佳答案
听起来您应该使用 BigDecimal
- 从 long 创建一个 BigDecimal
,然后按 3 位缩放它:
BigDecimal bd = new BigDecimal(duration).scaleByPowerOfTen(-3);
String durationStr = formatter.format(bd);
通过使用 BigDecimal
而不是 double
,您知道您仍然完全您真正考虑的值,而不是只是“double
可以容纳的最接近的近似值”。
你可能还想要:
formatter.setMinimumFractionDigits(3);
formatter.setMaximumFractionDigits(3);
... 以确保您始终准确获得 5 位数字。 (例如,假设您希望 1 秒为“1.000”。)
关于java - 如何在 Java 中格式化数字并保留小数点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31201781/