【发布时间】:2015-03-25 12:19:31
【问题描述】:
我正在使用NCalc 来评估复杂的表达式。但是我发现了一个大问题。
像new Expression("Abs(-1) + Cos(2)").Evaluate() 这样的简单公式会引发异常
Operator '+' can't be applied to operands of types 'decimal' and 'double
在 C# 代码中 Math.Abs(-1) + Math.Cos(2) 有效,所以要么我做错了,要么 NCalc 中存在错误。
有人遇到同样的问题吗?
有人有解决办法吗?
我在项目网站上找到的与此错误相关的唯一线程已经很老了,并且谈到了编辑源代码。 https://ncalc.codeplex.com/discussions/346702
我还在他们的论坛上发布了一个问题,但 StackOverflow 通常更具动态性。 https://ncalc.codeplex.com/discussions/613634
【问题讨论】:
-
你一开始有没有试过搜索这个错误?
-
您需要将它们转换为相同的类型。
-
@btevfik,你建议我怎么做?
-
这个工作 new Expression("Abs(-1m) + Cos(2m)").Evaluate()
-
@btevfik 和大家。请不要只是抛出解决方案。如果您从未使用过并且不知道 NCalc,您将不会理解这个问题。 1º 我不能通过 -1m e 2m,因为它们不是有效数字。 2º 问题不在于 Abs 和 Cos 函数。它的总和。