1

1.0E-4 のような値、または「E」の後に「-」を含むその他の値を含むjevalライブラリを使用した式の評価に問題があります。

Evaluator mEvaluator = new Evaluator();
String r1 = mEvaluator.evaluate("1/10000"); // Works, r1 == "1.0E-4"
String r2 = mEvaluator.evaluate("1.0E-4");  // Doesn't work, exception is thrown
String r3 = mEvaluator.evaluate("1.0E4");   // Works, r3 == "1.0E4"

例外はこれです:

12-25 12:10:51.495: W/System.err(5225): net.sourceforge.jeval.EvaluationException: Expression is invalid.

そのような値はjevalを使用してどのように評価できますか?

4

2 に答える 2

0

jeval は1.0E-4数値を 2 つのオペランドを持つ式として扱うように思えます:1.0Eマイナス4. cristi_b がアドバイスしたように、いくつかの回避策を使用できます。もう 1 つの方法は、別のスクリプト エンジンを使用することです。

JDK 6は、JavaScript 式を評価するためのAPI を提供します。これらは、評価しようとしているものと互換性があると思います。

ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
engine.eval("1.0E-4");
于 2012-12-25T10:43:51.177 に答える
0

使わない理由

String r2 = mEvaluator.evaluate("1/1.0E4");
于 2012-12-25T10:30:47.943 に答える