gpt4 book ai didi

java - 为什么我得到构造函数 BigDecimal(Number) 未定义?

转载 作者:行者123 更新时间:2023-11-29 04:47:27 25 4
gpt4 key购买 nike

我在 Jasper Reports 中创建了一个变量,其值类名称为 java.math.BigDecimal。我将表达式设置为:

new BigDecimal(PRODUCT($F{CurrentValue},100)).divide($V{current_val_total})

但我一直收到错误:

The constructor BigDecimal(Number) is undefined 

net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
1. The constructor BigDecimal(Number) is undefined
value = new BigDecimal(PRODUCT (((java.math.BigDecimal)field_CurrentValue.getValue()),100)).divide(((java.math.BigDecimal)variable_current_val_total.getValue())); //$JR_EXPR_ID=18$
<--------------------------------------------------------------------------------->
2. The constructor BigDecimal(Number) is undefined
value = new BigDecimal(PRODUCT (((java.math.BigDecimal)field_CurrentValue.getOldValue()),100)).divide(((java.math.BigDecimal)variable_current_val_total.getOldValue())); //$JR_EXPR_ID=18$
<------------------------------------------------------------------------------------>
3. The constructor BigDecimal(Number) is undefined
value = new BigDecimal(PRODUCT (((java.math.BigDecimal)field_CurrentValue.getValue()),100)).divide(((java.math.BigDecimal)variable_current_val_total.getEstimatedValue())); //$JR_EXPR_ID=18$
<--------------------------------------------------------------------------------->
3 errors
.
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:215)
at net.sf.jasperreports.eclipse.builder.JasperReportCompiler.compileReport(JasperReportCompiler.java:195)
at com.jaspersoft.studio.editor.preview.view.control.ReportControler.compileJasperDesign(ReportControler.java:439)
at com.jaspersoft.studio.editor.preview.view.control.ReportControler.access$15(ReportControler.java:416)
at com.jaspersoft.studio.editor.preview.view.control.ReportControler$5.run(ReportControler.java:341)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

我该如何解决这个问题?

最佳答案

PRODUCT 返回 java.lang.NumberJasper Reports Functions .

java.math.BigDecimal没有构造函数这需要 java.lang.Number

您需要使用 api 中可用的构造函数之一,我建议 BigDecimal(double val),因此在 java 上调用 doubleValue() 函数.lang.编号

new BigDecimal(PRODUCT($F{CurrentValue},100).doubleValue()).divide($V{current_val_total})

或者使用 NumberString

new BigDecimal(PRODUCT($F{CurrentValue},100).toString()).divide($V{current_val_total})

使用哪个“最好”取决于 Number 的实际类别,参见 Convert Java Number to BigDecimal : best way了解更多信息。然而,在使用正常舍入的报告生成中,它不会有太大区别。

关于java - 为什么我得到构造函数 BigDecimal(Number) 未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36626569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com