java数学。当参数名称为“ e”时,mxparser返回NaN。

问题描述 投票:0回答:2
我使用数学。mxparser在Java类中的Java(j2ee)中评估简单公式,公式存储在数据库中,因此在此示例中为“ a + b + c”,我的意思是在此公式中未使用“ e”,但是,当我的任何参数命名为“ e”时,它都会返回“ NaN”(Oh!)

Argument a = new Argument("a = " + (jjNumber.isFloat(final_values_date_a.get(i).get("_val").toString()) ? final_values_date_a.get(i).get("_val").toString() : "0")); Argument b = new Argument("b = " + (jjNumber.isFloat(final_values_date_b.get(i).get("_val").toString()) ? final_values_date_b.get(i).get("_val").toString() : "0")); Argument c = new Argument("c = " + (jjNumber.isFloat(final_values_date_c.get(i).get("_val").toString()) ? final_values_date_c.get(i).get("_val").toString() : "0")); Argument d = new Argument("d = " + (jjNumber.isFloat(final_values_date_d.get(i).get("_val").toString()) ? final_values_date_d.get(i).get("_val").toString() : "0")); Argument e = new Argument("e = " + (jjNumber.isFloat(final_values_date_e.get(i).get("_val").toString()) ? final_values_date_e.get(i).get("_val").toString() : "0")); Argument f = new Argument("f = " + (jjNumber.isFloat(final_values_date_f.get(i).get("_val").toString()) ? final_values_date_f.get(i).get("_val").toString() : "0")); Argument g = new Argument("g = " + (jjNumber.isFloat(final_values_date_g.get(i).get("_val").toString()) ? final_values_date_g.get(i).get("_val").toString() : "0")); Expression exp = new Expression(indicatorRow.get(0).get(_formula).toString(), a,b,c,d, e ,f,g ); double v = exp.calculate();

当我将“ e”更改为“ e1”(或除“ e”以外的所有其他诸如“ x”,“ y”,“ z1”等之类的代码时,效果很好,如下代码:

Argument e = new Argument("e1 = " + (jjNumber.isFloat(final_values_date_e.get(i).get("_val").toString()) ? final_values_date_e.get(i).get("_val").toString() : "0"));

是库中的错误吗?还是有任何错误?

我使用数学。 mxparser评估java类中java(j2ee)中的简单公式,公式存储在数据库中,因此对于此示例为“ a + b + c”,我的意思是在此公式中不使用“ e”,但是当我的任何一个时。 ..

java math eval evaluate
2个回答
1
投票
是,'e'是保留关键字。您可以通过关键字操作选项轻松更改此设置。

0
投票
也许“ e”保留为自然对数2.718的基数。...
© www.soinside.com 2019 - 2024. All rights reserved.