2016-03-02 50 views
1

我有一個Dictionary<string, double> values和值的精度對我很重要。我有一個字符串公式,即中綴可以解析。我不知道如何做這樣的事情:如何在MathNet.Symbolics中設置雙精度評估函數?

var expr = Infix.ParseOrThrow(m.Formula); 
    var result = Evaluate.Evaluate<double>(values, expr); 

得到一個雙精度結果?

回答

0

評估運行在自定義FloatingPoint類型上,該類型可以表示各種雙精度浮點值(主要是實數或複數,理論上也是向量或矩陣)。您可以將double投到FloatingPoint,並使用RealValueFloatingPoint獲得雙倍獎金。

實施例:

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;