java 如何直接将 double 转换为字符串?

标签 java string double

我想将 double 转换为字符串。 如果我使用 Double.toString 或 String.valueOf 它会给出一些可怕的东西,比如 5e-10 或类似的东西。

如果我有 x = 0.00000032 我想要字符串“0.00000032”,简单地说。

我做了很长时间,我想知道是否有更好(更短)的方法来做到这一点。

            szText += String.format("%.20f", dOutput);

            iZeros = 0;
            for(int i=szText.length() - 1; i>=0; i--)
            {
                if(szText.charAt(i) == '0')
                    ++iZeros;
                else break;
            }

            szText = szText.substring(0, szText.length() - iZeros);

最佳答案

可能有更好的选择,但你可以使用类似...

NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(100);

double x = 0.00000032d;
System.out.println(x);
System.out.println(nf.format(x));

哪些输出

3.2E-7
0.00000032

您可能想根据您的特定需求使用 maximumFractionDigits 属性...

关于java 如何直接将 double 转换为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854591/

相关文章:

objective-c - NSString Initwithformat :arguments: 的限制

c# - 如何使用 if 条件来添加值

Java 应用程序在 Windows 关闭时挂起

c - 建议使用 gcc 编译器替代 gets() 函数

java - 想要在 Java 中专门进行字符串拆分

将 double 转换为整数?

java-8 - DoubleSummaryStatistics 中的 sum 与 simpleSum 与 sumCompensation?拥有它们有什么重要意义?

java - SimpleDateFormat 从 Firestore 时间戳返回错误的时间 - 为什么?

java - SpringMVC - 移动访问时更改 View

java - nscala-time 和 Java 8 数据时间之间的 Scala 日期时间