如何将"6020494385.89982"
字符串值转换为double?
String ss = "6020494385.89982";
double dd = Double.parseDouble(String.valueOf(ss));
System.out.println(dd);
我得到输出为
6.02049438589982E9
但我希望6020494385.89982
为双倍值。
答案 0 :(得分:5)
使用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
具有使用双重精度的特定方式,例如在这种特定情况下不起作用。
答案 1 :(得分:2)
号码是正确的。 6.02049438589982E9
只是科学记数法,在您打印double
时是默认值。如果您需要非科学记数法,可以使用printf
代替println
:
System.out.printf("%f\n", dd);
答案 2 :(得分:1)
6.02049438589982E9
与6020494385.89982
6.02049438589982E9
= 6.02049438589982 X 10^9
存储在double中的值是6020494385.89982但是,当您将其打印出来时,它表示为以下格式:6.02049438589982E9
答案 3 :(得分:1)
如果你希望表示的格式与ss变量的当前值相同,则不需要转换为double。
但是,如果您需要转换为某些其他目的,然后需要稍后显示该格式,否则您可以使用其他人建议的 DecimalFormat 。