Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将非常小的双精度值转换为字符串(使用科学记数法)(Java)_Java_Double_Scientific Notation - Fatal编程技术网

将非常小的双精度值转换为字符串(使用科学记数法)(Java)

将非常小的双精度值转换为字符串(使用科学记数法)(Java),java,double,scientific-notation,Java,Double,Scientific Notation,我试图打印一个小的双精度数字,如6.67e-11,但使用double.toString()返回0。我该怎么做才能让它打印6.67e-11(或类似内容?无法复制: public class Test { public static void main(String args[]) { double d = 6.67e-11; System.out.println(Double.toString(d)); // Prints "6.67E-11"

我试图打印一个小的双精度数字,如
6.67e-11
,但使用double.toString()返回
0
。我该怎么做才能让它打印6.67e-11(或类似内容?

无法复制:

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。

+1-javadoc确认了您的记忆:“m或a的小数部分必须打印多少位?必须至少有一个数字来表示小数部分,除此之外,还必须有足够多的数字来唯一区分参数值和double类型的相邻值。“该死,你说得对。double.toString()在我想要的情况下工作,错误在代码的另一部分。我想我应该在询问之前进行更多的测试…请查看。