BigDecimal рендеринг десятичной точки в соответствии с локалью? - PullRequest
1 голос
/ 23 февраля 2012

, связанный с другой проблемой, которую я обнаружил: если я хочу отобразить BigDecimal.ZERO в JSF с 2-мя дробными цифрами, то мне нужно жестко закодировать округление в моем компоненте поддержки.Поскольку numberConverter не работает с константой.

BigDecimal.ZERO.SetScale(2, RoundingMode.HALF_UP); //this works and displays: "0.00"

К сожалению, я не могу использовать зависящее от локали отображение десятичной точки с этим!Я даже не могу изменить дроби с min / maxFractionDigits после жесткого кодирования roundingMode.<f:convertNumber pattern="..." НЕ влияет на отображение.

Это настоящий беспорядок, кто-то знает, как применить шаблон при отображении BigDecimal в JSF (не String! Тогда, конечно, я мог бы использовать новый DecimalFormat).

1 Ответ

0 голосов
/ 23 февраля 2012

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

...