私には、Dictionary<string, double> values
値の精度が重要です。Infix が解析できる文字列 Formula があります。私はこのようなことをする方法を疑問に思います:
var expr = Infix.ParseOrThrow(m.Formula);
var result = Evaluate.Evaluate<double>(values, expr);
倍精度で結果を取得するには?
私には、Dictionary<string, double> values
値の精度が重要です。Infix が解析できる文字列 Formula があります。私はこのようなことをする方法を疑問に思います:
var expr = Infix.ParseOrThrow(m.Formula);
var result = Evaluate.Evaluate<double>(values, expr);
倍精度で結果を取得するには?
Evaluate は、FloatingPoint
さまざまな倍精度浮動小数点値 (ほとんどが実数または複素数、理論上はベクトルまたは行列) を表すことができるカスタム型で動作します。double
aを aにキャストしFloatingPoint
、 を使用RealValue
して a から double を取得できFloatingPoint
ます。
例:
var variables = new Dictionary<string,FloatingPoint>
{{ "a", 2.0 },
{ "b", 3.0 }};
var expr = Infix.ParseOrThrow("2/3*a");
double result = Evaluate.Evaluate(variables, expr).RealValue;