java - 十进制格式转换问题

标签 java android decimalformat

我使用 DecimalFormat 来将 double 转换为字符串,如下所示:

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

df.format(km);

问题是,虽然变量 km 的值为 9.655195710258606E-5,但 df.format 方法的结果返回 0 作为字符串。但我期望类似于 9.655 而不是 0

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

感谢您的关心

最佳答案

它按其应有的方式工作。字符串“9.655”是错误的。该值实际上是 0.00009655,如果将其四舍五入到小数点后 3 位,则会得到“0”。

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

关于java - 十进制格式转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19923277/

相关文章:

java - 将 DecimalFormat(#.#) 与本地化一起使用

java - 流畅的语法和继承

java - 我的应用程序在 android studio 中崩溃了,在查看日志时我无法弄清楚出了什么问题

android - 我需要在 andengine 中制作一个盒子

java - 为什么我会遇到异常(exception)?

java - 十进制格式类问题

java - 如何使用正则表达式在以 "\n"分隔的多行中定位某个字符串 A 之后的某个字符串 B

java - Java 中的同步 - Thinking in Java 示例

android - Android 中的 Intent 过滤器是什么?

android - Osmdroid MylocationNewOverlay - 设置位置更新频率