两个整数的除法导致浮点值。 有没有办法在以下情况下将结果作为整数?
<p:commandButton value="#{bean.intA / bean.intB}" ../>
结果应显示为“1”而不是“1.0”。
答案 0 :(得分:1)
EL不支持向上转换/格式化。一个通用的解决方案是创建一个custom EL function,参考下面的实用方法:
public static String formatNumber(Number number, String pattern) {
if (number == null) {
return null;
}
DecimalFormat formatter = (DecimalFormat) NumberFormat.getNumberInstance(getLocale());
formatter.applyPattern(pattern);
return formatter.format(number);
}
然后您可以按如下方式使用它:
<p:commandButton value="#{util:formatNumber(bean.intA / bean.intB, '#')}" ... />
如果您碰巧使用JSF实用程序库OmniFaces,它可以#{of:formatNumber()}
的形式获得,其源代码实际上是在上面复制的。