在mathdotnet中使用双系数值解析表达式

时间:2015-07-06 18:07:25

标签: c# mathdotnet

我正在使用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中处理这样的表达式,但我在文档中找不到它。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

代数表达式可以包含整数和有理数,但不包含浮点数(实际代数和Math.NET符号中都没有)。您可以使用symbol until evaluation或使用完全有理数。

然而,人们可以争辩说" 30.5"可以解释为" 305/10"或" 61/2"自动简化后。我们可以考虑扩展解析器以自动执行此解释,可以使用设置来打开/关闭它。你可以open an issue on GitHub吗?谢谢!

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