我想将 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/