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

Thi*_*ame 0 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);
Run Code Online (Sandbox Code Playgroud)

Mad*_*mer 5

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

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

double x = 0.00000032d;
System.out.println(x);
System.out.println(nf.format(x));
Run Code Online (Sandbox Code Playgroud)

哪个输出

3.2E-7
0.00000032
Run Code Online (Sandbox Code Playgroud)

您可能想要根据maximumFractionDigits您的具体需求来游玩该物业......