2016-11-09 2 views
-1

У меня есть строка с номером 12345686844.71, и мне нужно преобразовать ее в double, чтобы я мог получить то же значение, что и в строке, чтобы использовать это в двойном значении в формуле. со мной, но это не работает, и мы получаем значение как 1.2345686844 .... на самом деле это должно быть значение так же, как хранится в строкеПроблемы с разбором Строка в double

double d = Double.parseDouble(string) 
+0

Возможный дубликат (http://stackoverflow.com/ Вопросы/10577610/what-is-difference-between-double-parsedoublestring-and-double-valueofstring) –

ответ

-3

двойной d = Double.parseDouble (строка)

+0

Это было проверено мной, но это не работает, и мы получаем значение как 1.2345686844 .... на самом деле это должно быть значение, которое хранится в строке – Sandeep

+1

Почему вы скопировали/вставили часть вопроса ?? – xenteros

-1

Вы можете использовать класс BigDecimal, предоставляемый в java.

BigDecimal value = new BigDecimal(str); 

исх: https://stackoverflow.com/a/3752626/7135460

+0

ОК, это нормально, но я пытаюсь сохранить одно и то же значение в двойной формуле, например: double z = x * (y/a), где x - двойное, а y - двойное, а a - большое десятичное – Sandeep

1

То, что вы сделали правильно. Вы печатаете номер в нотации науки.

Вместо System.out.print() использовать следующее:

double d = Double.parseDouble(string) 
System.out.printf("dexp: %f\n", d); 

Если вы вставили всю стоимость вашего двойника вы видите, что есть E почти в конце печатного значения. Он обозначает multiplied by 10 to the power of, и есть экспонента.

Важно не то, что печатается, а то, что находится в памяти. Значение, сохраненное в d, верное. Печатное значение может иметь много ненужных конечных нулей.

Вы также можете использовать DecimalFormat класс: [? В чем разница между Double.parseDouble (строка) и Double.valueOf (строка)]

DecimalFormat df = new DecimalFormat("0", DecimalFormatSymbols.getInstance(Locale.ENGLISH)); 
System.out.println(df.format(d)); 
Смежные вопросы