java - 如何在 Java 中格式化数字并保留小数点?

标签 java format

我试图将毫秒显示为秒,同时保留小数点,例如我有 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/

相关文章:

java - 替换字符串中的多个子字符串

Java链表与对象 - 空指针异常

java - Java.Random.IO 中的 ReadLong 和 WriteLong 方法

python - Pandas 日期时间格式不起作用 - python

Python csv.writer 控制精度

java - 小部件的 runOnUiThread 方法模拟?

java - 在 while 循环中等待用户操作 - JAVA

java - CDI : @Resource inject in junit weld?

vba - 使用 VBA 根据频率计算到期日

html - 在 flask 中格式化html代码?