如何将6020494385.89982字符串值转换为double

时间:2016-03-04 11:10:08

标签: java string double

如何将"6020494385.89982"字符串值转换为double?

String ss = "6020494385.89982";
double dd = Double.parseDouble(String.valueOf(ss));
System.out.println(dd);

我得到输出为 6.02049438589982E9但我希望6020494385.89982为双倍值。

4 个答案:

答案 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.02049438589982E96020494385.89982

相同

6.02049438589982E9 = 6.02049438589982 X 10^9

存储在double中的值是6020494385.89982但是,当您将其打印出来时,它表示为以下格式:6.02049438589982E9

答案 3 :(得分:1)

如果你希望表示的格式与ss变量的当前值相同,则不需要转换为double。

但是,如果您需要转换为某些其他目的,然后需要稍后显示该格式,否则您可以使用其他人建议的 DecimalFormat