我想将双精度转换为字符串。
如果我使用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
属性...