数値を含む文字列があります。
百がコンマで区切られ、数字の前に $ ドル記号があるようにフォーマットしたいと思います。
たとえば、12345 は $12,345.00 にフォーマットする必要があります。
ドル記号なしで以下のコードを試しました:
new java.text.DecimalFormat(#,##0.00).format.(myString)
そしてドル記号付きの下のもの:
new java.text.DecimalFormat($ #,##0.00).format.(myString)
ただし、どちらもエラーを出しています。
このフォーマットを実現する正しい方法は何ですか?
これはジャスパー レポート 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」ではなく「利用不可」をレポートに出力したいと考えています。それ以外の場合は、上記のように数値を適切にフォーマットする必要があります。
この問題を解決するにはどうすればよいですか?
読んでくれてありがとう。