我试图将毫秒显示为秒,同时保持小数,例如我有1234毫秒,我想将其显示为1.234秒.
Decimal duration = 1234;
NumberFormat formatter = new DecimalFormat("#0.000");
String durationStr = formatter.format(duration / 1000);
Run Code Online (Sandbox Code Playgroud)
有什么建议我怎么做到这一点?
听起来你应该使用BigDecimal- BigDecimal从长处创建一个,然后将其缩放3个位置:
BigDecimal bd = new BigDecimal(duration).scaleByPowerOfTen(-3);
String durationStr = formatter.format(bd);
Run Code Online (Sandbox Code Playgroud)
通过使用BigDecimal替代的double,你知道,你仍然有确切你真的考虑,而不是简单的"是最近的逼近值double可容纳".
你可能也想要:
formatter.setMinimumFractionDigits(3);
formatter.setMaximumFractionDigits(3);
Run Code Online (Sandbox Code Playgroud)
...确保您总是得到5位数.(假设您希望1秒为"1.000".)