Jasper reports 四舍五入计算百分比

Jasper reports 四舍五入计算百分比,jasper-reports,rounding,percentage,bigdecimal,Jasper Reports,Rounding,Percentage,Bigdecimal,这是我用来计算百分比的公式: (new BigDecimal($V{YRSSN_CountsMeasure}).compareTo(BigDecimal.ZERO) == 0) ? "0.0%" : (100 * $V{Premium_YesMeasure}.floatValue() / $V{YRSSN_CountsMeasure}.floatValue()) + "%" 效果很好,只是格式不正确。我想要小数点后1位,它会带来7!我尝试过使用,##0.0模式,但它不起作用 我怎样才能

这是我用来计算百分比的公式:

(new BigDecimal($V{YRSSN_CountsMeasure}).compareTo(BigDecimal.ZERO) == 0) ? "0.0%" :
    (100 * $V{Premium_YesMeasure}.floatValue() / $V{YRSSN_CountsMeasure}.floatValue()) + "%"
效果很好,只是格式不正确。我想要小数点后1位,它会带来7!我尝试过使用
,##0.0
模式,但它不起作用


我怎样才能修好它

假设所有变量类型都是BigDecimal,这应该适用于您:

(new BigDecimal($V{YRSSN_CountsMeasure}).compareTo(BigDecimal.ZERO) == 0) ? "0.0%" : ($V{Premium_YesMeasure}.divide($V{YRSSN_CountsMeasure}).multiply(BigDecimal.valueOf(100)).setScale(1)) + "%"

编辑:添加或缺少(开始时。

您尝试过哪些模式设置不起作用?YRSSN#U CountsMeasure和Premium#YesMeasure是什么类型?模式我有这样一个:#,##0.0此度量很长,但我也尝试过双十进制不起作用,我得到了以下错误:com.jaspersoft.jasperserver.api.JSExceptionWrapper:编译报表表达式类f时遇到错误ile:1.标记“)”上的语法错误,删除此标记值=新的BigDecimal((java.lang.Long)变量\u YRSSN\u CountsMeasure.getValue())。是否将其与(BigDecimal.ZERO)==0进行比较?“0.0%:((java.lang.Long)变量_Premium_YesMeasure.getValue())。除((java.lang.Long)变量_YRSSN_countsmasure.getValue())。乘(BigDecimal.valueOf(100))。设置刻度(1))+“%”//$JR_EXPR_ID=14$^1 errorsvariable$V{Premium_YesMeasure}和$V{YRSSN_CountsMeasure}都很长,如果我将它们设为bigDecimal,我的答案会被错误编辑,丢失(在开始时)。我的答案假设所有变量都是bigDecimal类型。