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