2009-04-29 1 views
0

DecimalFormat анализирует Double.toString() представление (которое может быть в научной и финансовой форме).DecimalFormat и doubles

Почему Солнце выбрало этот подход вместо прямого преобразования двойного в String?

PS: Чтобы быть более конкретным. Почему DecimalFormat внутренне использует Double.toString(), чтобы форматировать Double, вместо форматирования внутреннего представления самого Double?

+0

Что вы подразумеваете под «прямым преобразованием»? – Eddie

+0

Можете ли вы уточнить, что вы спрашиваете? Я не знаю, что вы имеете в виду «прямое преобразование double в String». В OpenJDK Double.toString() возвращает String.valueOf (значение), где значение является примитивным двойным. Это, в свою очередь, дает Double.toString (d), который вызывает новый FloatingDecimal (d) .toJavaFormatString(), который, наконец, выполняет фактическую работу. –

ответ

2

DecimalFormat дает вам больше контроля над форматом, позволяя вам придать ему шаблон форматирования.

+0

Согласитесь с вами, но здесь я спрашиваю о том, как DecimalFormat делает форматирование внутри. –

0

Возможно, он спрашивает, как «Double.toString (withSomeParameters)» выполнит задание вместо использования DecimalFormat.

Я думаю, причина, может быть i18n. в некоторых местах вы можете ввести 1800.39 .., а где-то еще вы можете ввести 1.800,39

0

Я не понимаю, что вы подразумеваете под «прямым преобразованием», но toString() - это всегда отладочная информация! Вы не должны использовать его для отображения значений во внешнем интерфейсе. Используйте для обработки и форматирования DecimalFormat!

+0

Что я спрашивал. Почему DecimalFormat внутренне использует результат Double.toString(), чтобы форматировать Double, вместо форматирования внутреннего представления Double. –

-1

Для финансовых приложений вместо этого используйте BigDecimal, которые дают вам контроль над режимами округления и точностью.

+0

Собственно, вопрос, связанный с любым приложением, которое форматирует double. –

+0

ОК, никогда не думай тогда ... – KarlP

0

Возможно, Солнце следует за DRY принципов.

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

  • Нет связанных вопросов^_^