1

のような小さな倍精度数値を出力しようとしています6.67e-11が、Double.toString() を使用すると が返されます0。代わりに 6.67e-11 (または同様のもの) を出力するにはどうすればよいですか?

4

1 に答える 1

2

再現できません:

public class Test {

    public static void main(String args[])
    {
        double d = 6.67e-11;

        System.out.println(Double.toString(d)); // Prints "6.67E-11"
    }
}

IIRC はDouble.toString()常に、 を使用して正確な値を往復できる文字列を返しますDouble.parseDouble()

私の推測では、実際には小さな値ではなく、他の操作での丸め誤差のために 0 になっていると思います。

于 2010-12-12T13:03:05.517 に答える