我在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
答案 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