十进制格式转换问题



我正在使用DecimalFormat将双精度转换为字符串,如下所示:

DecimalFormat df = new DecimalFormat("###.###");
df.format(km);

问题是,尽管变量 km 的值为 9.655195710258606E-5,但 df.format 方法的结果以字符串形式返回0。但我期待像9.655而不是0这样的东西.

任何帮助和建议将不胜感激

感谢您的关注

它按预期工作。字符串"9.655"是错误的。该值实际上是 0.00009655,如果将其四舍五入到小数点后 3 位,则得到"0"。

要查看更多数字,您可以在格式中使用更多小数位 #.###### 或强制使用类似#.###E0的格式进行科学记数法。

在这些数字的末尾,E(x) 表示指数。E-5,表示指数为 -5,表示实际数为 9.655 * (1/(10^5))。

最新更新