解析表达式与双系数值在mathdotnet

本文关键字:mathdotnet 表达式 | 更新日期: 2023-09-27 18:01:27

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

解析表达式与双系数值在mathdotnet

代数表达式可以包含整数和有理数,但不能包含浮点数(在实际代数和数学中都不是)。他净)。在求值之前可以使用符号,也可以使用精确的有理数。

然而,有人可能会认为"30.5"可以被解释为"305/10"的简写,或者自动简化后的"61/2"。我们可以考虑扩展解析器来自动执行这种解释,也许可以通过设置来打开/关闭它。你能在GitHub上打开一个问题吗?谢谢!

所以,要回答实际的问题,直到我们扩展了解析器,你将不得不使用有理数代替,例如25/10*tax + income,它被自动简化为income + (5/2)*tax