У меня есть строка с некоторым числовым значением.
Я хочу отформатировать его таким образом, чтобы сотни были разделены запятыми, а перед числом стоял знак доллара.
напр. 12345 следует отформатировать до $ 12 345,00.
Я попробовал следующий код без знака доллара:
new java.text.DecimalFormat(#,##0.00).format.(myString)
и приведенный ниже код со знаком доллара:
new java.text.DecimalFormat($ #,##0.00).format.(myString)
Однако оба выдают ошибку.
Как правильно получить этот формат?
Это часть отчета jasper jrxml, где я хочу избежать "null" в отчете и поэтому вставляю следующий код:
<textField isBlankWhenNull="false" isStretchWithOverflow="true">
<reportElement stretchType="RelativeToTallestObject" x="1350" y="0" width="150" height="30"/>
<textElement/>
<textFieldExpression class="java.math.BigDecimal"><![CDATA[$F{myString}!=null?new java.text.DecimalFormat(#,##0.00).format.($F{myString}):"Unavailable"]]></textFieldExpression>
</textField>
Где myString является результатом запроса и объявляется в jrxml как:
<field name="myString" class="java.lang.String"/>
Ранее myString был объявлен как BigDecimal, но тогда оператор сравнения ?= не работал.
Если значение валюты недоступно, я хочу напечатать в отчете «недоступно» вместо значения по умолчанию «null». В противном случае я хочу, чтобы номер был правильно отформатирован, как описано выше.
Как решить эту проблему?
Спасибо, что прочитали.