我遇到一些奇怪的四舍五入问题JSF使用下面的JSF代码数字加起来不正确:问题F:convertNumbers四舍五入/显示不正确
<h:outputLabel value="Subtotal"/><h:outputText value="#{shoppingCart.itemsPrice}"><f:convertNumber groupingUsed="true" type="currency" currencySymbol="€"/></h:outputText>
<h:outputLabel value="Shipping"/><h:outputText value="#{shoppingCart.shippingPrice}"><f:convertNumber groupingUsed="true" type="currency" currencySymbol="€"/></h:outputText>
<h:outputLabel value="Vfat"/><h:outputText value="#{shoppingCart.vfat}"><f:convertNumber groupingUsed="true" type="currency" currencySymbol="€"/></h:outputText>
<h:outputLabel value="Total"/><h:outputText value="#{shoppingCart.totalGrossPrice}"><f:convertNumber groupingUsed="true" type="currency" currencySymbol="€"/></h:outputText>
这里的数字
- 小计49.50€
- 航运€0.00
- VFAT€9.40
- 总€58.91
这些数字不是很正确正弦正弦波在我国的国家是19%,因此VFat实际上是9405,我验证是计算的值。显示它应该是9,41,但它只显示9,40以上。然而,即使是更奇怪的是,加49,50给它右49,50 + 9,405 = 58,91(四舍五入显示)。所以很明显,对于一个缺少分数的客户来说,这会非常令人困惑。显然,在某些情况下,这是不可避免的,例如, Vfat是?,006,ItemPrice是?, 004然后总结了这个?,01但是这里甚至没有这种情况。
任何想法?
尝试使用BigDecimal与适当的精度。 http://stackoverflow.com/questions/1359817/using-bigdecimal-to-work-with-currencies – Ravi
谢谢拉维。通过BigDecimal,我可以得到一致的结果,即对于vfat以及总价格,0,005都被舍入。而且,当我查看这也是合法的,在我的国家以这种方式进行vfat – Tom