【发布时间】:2015-07-02 09:47:28
【问题描述】:
我在 iReport 设计中将此定义为变量:
$V{total_ver}.intValue() != 0 ? new BigDecimal((new BigDecimal( $F{TotalVerified}+"").divide( new BigDecimal( $V{total_ver} +"") , 4, RoundingMode.HALF_DOWN )).multiply(new BigDecimal(100))+"") : new BigDecimal(0)
它应该显示 90.91,但它却显示 100.0000。
我在 Java 程序中测试了等效项:
total_ver != 0 ? new BigDecimal((new BigDecimal( TotalVerified+"").divide( new BigDecimal( total_ver +"") , 4, RoundingMode.HALF_DOWN )).multiply(new BigDecimal(100))+"") : new BigDecimal(0)
它工作正常(显示 90.91),那么为什么表达式无法在 Jasper iReport 中返回正确的值?
【问题讨论】:
-
你检查过total_ver的类是java.math.BigDecimal吗?这可能是一个愚蠢的问题,但最好先检查显而易见的事情。
标签: java jasper-reports bigdecimal