JasperReports中的格式编号:如何修剪零

时间:2016-12-08 03:29:12

标签: java jasper-reports number-formatting

我在JasperReports中遇到格式编号问题。 例如,我有一个double值,我把格式模式设为<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.123,我得到了我想要的,但如果值只有1或1.2则返回1.000和1.200,而不是1.2或1.在这种情况下,如何修剪所有不必要的零。

这是 jrxml

/var/lib/php/session

1 个答案:

答案 0 :(得分:2)

该模式是用于格式化十进制数字的标准Java模式。您可以在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