如何将6020494385.89982字符串值转换为双精度值
如何将"6020494385.89982"
字符串值转换为双精度值?如何将6020494385.89982字符串值转换为双精度值
String ss = "6020494385.89982";
double dd = Double.parseDouble(String.valueOf(ss));
System.out.println(dd);
我得到的输出作为 6.02049438589982E9
但我想6020494385.89982
作为双重价值。
6.02049438589982E9
相同6020494385.89982
6.02049438589982E9
= 6.02049438589982 X 10^9
存储在双值6020494385.89982然而,当你把它打印出来,它代表了这个格式:6.02049438589982E9
使用一个DecimalFormat
对象应该伎俩
String ss = "6020494385.89982";
double dd = Double.parseDouble(String.valueOf(ss));
System.out.println(new DecimalFormat("#0.00000").format(dd));
或者你可以使用System.out#printf()
System.out.printf("%.5f", dd);
因为System.out.println
与双精度不会在例如这种特殊情况下工作,工作的一种特殊方式。
谢谢亚辛。有效。 –
该数字是正确的。 6.02049438589982E9
只是科学记数法,当您打印double
时,这是默认值。如果你想在非科学记数法,你可以只使用printf
代替println
:
System.out.printf("%f\n", dd);
'System.out.printf'和'System.out.format'有什么区别? –
@WilliamRosenbloom这是'System.out.printf'的JavaDoc的一部分:'调用out.printf(format,args)形式的这种方法的行为与调用out.format(format ,args)' –
@WilliamRosenbloom我认为你的意思是String.format –
你并不需要,如果你到底想要的格式相同的电流值的表示转换成双ss变量。
但是,如果您需要转换为其他用途,然后需要以后以其他格式显示,或者您可以使用DecimalFormat。
'6.02049438589982E9'只是double的字符串表示,只检查'dd == 6020494385.89982;' – Berger
谢谢Berger。是的dd == 6020494385.89982工作正常。但是,我将如何从6.02049438589982E9获得实际值6020494385.89982。 –