将电源转换为数字时,数字格式不好



我在转换方面遇到了一些麻烦,但下面的代码有时转换对,有时转换错

        double d = Double.parseDouble(results.get(position)); // Also accepts format like "1.574e10"
        Log.e("test",String.valueOf(d));
        String s1=  String.format("%f",d);
        Log.e("test",s1);

这是转换不起作用的例子

08-28 12:15:53.679: E/test(22754): 1.4910315055357396E-9
08-28 12:15:53.679: E/test(22754): 0,000000

问题是您的双精度非常小,默认情况下%f只打印小数点后的6个数字。

改为使用:

String s1 = String.format("%.10f", d);

将double格式化为字符串的正确方法是:

String.format("%1$,.4f", myDouble)

上面的例子给出了小数点后4位的精度。另一种格式化双精度的方法是使用DecimalFormat:

DecimalFormat df = new DecimalFormat("#.##");
String number = df.format(543.235555);

最新更新