2015-07-26 1 views
-2

Я хочу установить длинное число в двойное число. Проблема в том, что я хочу вернуть его в виде десятичного формата. Для бывших: у меня есть длинный номерВозврат double с двумя десятичными знаками с длинными

long a = 123456; 

я бросил double b = (double) a; Теперь б показать 1.234**E**5. Я хочу b показать точно как a: 123456.0. Не хочу «E» здесь Я передал его в String, а затем обработал сингл, чтобы удвоить. Нравится

b = Double.parseDouble(new Long(a).toString())); 

У кого-нибудь есть лучшие идеи, предлагающие мне поделиться им. Спасибо.

+2

Кастинг не имеет значения. Вы хотите * форматирование *, как в форматировании * строки *. – user2864740

+0

use DecimalFormat, http: //stackoverflow.com/a/8819889/3651739 –

+0

См. Http://stackoverflow.com/questions/703396/how-to-nicely-format-floating-numbers-to-string-without-unnecessary -decimal-0? rq = 1, http://stackoverflow.com/questions/8819842/best-way-to-format-a-double-value-to-2-decimal-places?lq=1, http://stackoverflow.com/questions/12806278/double-decimal-formatting-in-java?rq=1 для идей – user2864740

ответ

1

Не нужно бросать длинные или использовать toString на двойном объекте.

Просто используйте DescimalFormat:

DecimalFormat f = new DecimalFormat("#.0"); 
System.out.println(f.format(123456L)); 

Как вы можете видеть 123456L длинный числовое значение, но он отформатирован, как вы хотели.

Удачи.

+0

Он будет сформирован. Но я хочу, чтобы двойной номер возвращался без «E». Я использовал String как temp. Затем проанализируйте, чтобы удвоить. b = Double.parseDouble (новый длинный (a) .toString())) Ваш способ использования DecimalFormat как temp, а затем разобрать вдвое. Какой путь лучше –

+0

@ АНТРАН: Итак, ваш вопрос совсем другой, потому что любой будет принимать ваш вопрос как форматирование вывода при печати двойных значений. Если ваш вопрос о преобразовании длинного в двойной путь, это двойной d = новый Double (123456L); Если вы видите double как ### E ##, это так, как он печатается со стандартным форматом. Но это двойное значение. E представляет собой формат печати, а не самого значения. – STaefi

Смежные вопросы