例如,下面是一个 JSF 管理的 bean。
@ManagedBean
@ViewScoped
public final class Bean implements Serializable {
private BigDecimal price; //Getter only.
private BigDecimal currencyRate; //Getter only.
private static final long serialVersionUID = 1L;
@PostConstruct
private void init() {
price=new BigDecimal(5678);
currencyRate=new BigDecimal(0.016622);
}
}
price
和currencyRate
的乘积可以显示在<h:outputText>
中。<h:outputText value="#{bean.price * bean.currencyRate}"/>
这个乘法运算得到的是BigDecimal
还是只是一个double
值?
换句话说,这是否等同于以下内容?
<h:outputText value="#{bean.price.multiply(bean.currencyRate)}"/>
在这两种情况下,都会显示94.3797160000000077070825277303356415359303355216979980468750
。
如果有一个转换器来显示指定位数的小数位,例如两位,会怎样呢?
<h:outputText value="#{bean.price * bean.currencyRate}"
converter="#{bigDecimalConverter}"/>
无论如何,我希望这些表达式的结果都是 BigDecimal
。
94.3797160000000077070825277303356415359303355216979980468750
。 - Tiny