У меня есть строка с некоторым числовым значением.
Я хочу отформатировать его таким образом, чтобы сотни были разделены запятыми, и перед этим число знака доллара.
например. 12345 следует отформатировать до 12 345,00 долларов США.
Я попробовал код ниже без знака доллара:
new java.text.DecimalFormat(#,##0.00).format.(myString)
и ниже со знаком доллара:
new java.text.DecimalFormat($ #,##0.00).format.(myString)
Однако оба дают ошибку.
Каков правильный способ достижения этого формата?
Это часть jarx отчета jasper, где я хочу избежать "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, но тогда оператор сравнения? = не работал.
Если значение валюты недоступно, я хочу напечатать "unavailable" в отчете, а не по умолчанию "null". Кроме того, я хочу, чтобы номер был правильно отформатирован, как описано выше.
Как решить эту проблему?
Спасибо за чтение.