2017-03-14 15 views
0

NCalc行方不明EOF

Expression ex = new Expression("3[X] + 4[Y]"); 
ex.Parameters["X"] = 10; 
ex.Parameters["Y"] = 20; 

私はこのエラーを取得されています:なぜ私はこのエラーを取得している

missing EOF at '[x]' at line 1:1

わかりませんか?変数の角括弧はこれと何か関係がありますか?

+1

は私が前にNCalcを使用したことがありませんが、私の推測では、それが「NX」は乗算の構文をサポートしていないということです。代わりに3 * [X] + 4 * [Y] "'を実行してみてください。 – Abion47

+0

それはうまくいった。真剣に私はそのような小さなことを逃した。 – user

答えて

1

NCalcのparameters documentationを参照してください。あなたの例から

Expression e = new Expression("2 * [x]^2 + 5 * [y]"); 
e.Parameters["x"] = 5; 
e.Parameters["y"] = 1; 

Console.WriteLine(e.Evaluate()); 

:静的パラメータを使用して

Expression ex = new Expression("3 * [X] + 4 * [Y]"); 
ex.Parameters["X"] = 10; 
ex.Parameters["Y"] = 20; 

// 110 
Console.WriteLine(ex.Evaluate()); 
+0

"3 [X] + 4 [Y]"のような式に乗算(*)が記述されていない場合でも式を評価できる方法はありますか?また、式の形式を確認する方法はありますか? – user

+0

ライブラリは暗黙の乗算をサポートしていないようです。しかし、文法があなたのユースケースに対して厳しすぎる場合は、式を "構築"することができます。 [the tests](https://ncalc.codeplex.com/SourceControl/latest#Evaluant.Calculator.Tests/Fixtures.cs)を参照してください。 'Expression.HasError'と' Expression.Error'を使って式のエラーをチェックできます。 – Romoku

関連する問題