2

Infix.Parse用来解析等式

apples + oranges = 2
Expression aleft = Infix.ParseOrThrow("apples + oranges");
Expression aright = Infix.ParseOrThrow("2");

有时我需要解析小数值,比如

2.5*tax + income = 30.5

但这会引发System.Exception

Error in ...
(2.5)
  ^
Expecting: infix operator or ')'

必须有一种方法可以在 mathdotnet 中处理此类表达式,但我在文档中找不到。有人可以帮忙吗?

4

1 回答 1

2

代数表达式可以包含整数和有理数,但不能包含浮点数(在实际代数中和 Math.NET 符号中都没有)。您可以在评估之前使用符号,也可以使用精确的有理数。

但是,有人可能会争辩说,“30.5”可以解释为“305/10”的简写,或自动简化后的“61/2”。我们可以考虑扩展解析器以自动进行这种解释,也许可以设置打开/关闭它。你能在 GitHub 上为此打开一个问题吗?谢谢!

因此,要回答实际问题,在我们扩展解析器之前,您必须使用有理数,例如25/10*tax + income,它会自动简化为income + (5/2)*tax.

于 2015-07-06T19:47:32.680 回答