我有一個數字值的字符串。將字符串格式化爲碧玉報告中的貨幣格式
我想以數百個逗號分隔的方式進行格式化,數字之前有$美元符號。
例如12345的格式應爲$ 12,345.00
我嘗試下面的代碼,而美元符號:
new java.text.DecimalFormat(#,##0.00).format.(myString)
和一個低於美元符號:
new java.text.DecimalFormat($ #,##0.00).format.(myString)
然而,無論是給錯誤。
什麼是實現這種格式的正確方法?
這是碧玉報告JRXML的一部分,我想避免「空」的報告,從而將下面的代碼:
<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」。否則,我希望數字按上述方式正確格式化。
如何解決此問題?
感謝您的閱讀。
添加另一種解決方案 –
感謝亞歷克斯,會嘗試一下! – Nik
Double.valueOf給出錯誤「預計」...我發現這個 - 「你需要指定編譯類路徑,如果你使用jasper報告以外的庫」---但無法找到如何實現它! –
Nik