2016-12-08 12 views
0

JasperReportsでフォーマット番号に問題がありました。 は例えば、私は二重の価値を持っている、と私は今#,##0.000JasperReportsのフォーマット番号:ゼロをトリムする方法

のようなフォーマットパターンを入れて、数1.123の値で、私は私が望むものを得たが、値は1つだけ、または1.2である場合には1.000を返し、 1.200ではなく、1.2または1.この場合、どのようにすべての不要なゼロをトリミングできますか?

<textField pattern="#,##0.000;-#,##0.000" isBlankWhenNull="true"> 
    <reportElement x="2390" y="0" width="60" height="25"/> 
    <textFieldExpression><![CDATA[$F{C9} == null ? 0 : $F{C9}]]></textFieldExpression> 
</textField> 
+1

[ジャスパーレポートの通貨の書式に文字列を書式設定]の可能複製(http://stackoverflow.com//10913495/formatting-a-string-to-a-jasper-report-in-jasper-report)&[浮動小数点数を不要な小数点以下の0でStringに整形するには?](http://stackoverflow.com/q/703396/876298) –

答えて

2

そのパターンは、小数点数をフォーマットするために使用される標準Javaパターンである:ここ

jrxmlの一部です。 Javadoc for DecimalFormatに詳細情報があります。 JasperReportsエンジンは、そのパターンをjava.text.DecimalFormatインスタンスに内部的に送ります。

あなたのケースでは、#,###.###のようなより一般的なパターンが必要です。任意であり、正のパターンから推測されるので、負のパターンは必要ない。

シンプルのJavaコード

NumberFormat format = new DecimalFormat("#,###.###"); 
System.out.println(format.format(1.200)); 
System.out.println(format.format(1.210)); 
System.out.println(format.format(1.213)); 
System.out.println(format.format(1.2137)); 

私たちの結果を与える:

1,2 
1,21 
1,213 
1,214 
関連する問題