将非常小的双精度值转换为字符串(使用科学记数法)(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()在我想要的情况下工作,错误在代码的另一部分。我想我应该在询问之前进行更多的测试…请查看。