2

我有一个Dictionary<string, double> values价值观,精确度对我来说很重要。我有一个中缀可以解析的字符串公式。我想知道如何做这样的事情:

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

获得双精度结果?

4

1 回答 1

1

Evaluate 对FloatingPoint可以表示各种双精度浮点值(主要是实数或复数,理论上也包括向量或矩阵)的自定义类型进行操作。您可以将 adouble转换为 a FloatingPoint,并用于RealValue从 a 获得双倍返回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;
于 2016-03-02T15:18:18.897 回答