问题标签 [ncalc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1400 浏览

vb.net - 如何在 Visual Basic .NET 项目中安装 NCalc?

我正在制作一个程序,它必须使用 Visual Basic (.NET) 评估函数表达式,如 f(x) = x^2+6x-9。

我想我能做到这一点的唯一方法是使用 NCalc,所以我下载了它,我可以看到它安装在“项目 > 管理 NuGet 包”下。但我只是不知道下一步该做什么。我是否必须在项目中声明某些内容才能使用?因为现在这仍然给出一个错误:

有人能帮我吗?

0 投票
2 回答
309 浏览

c# - 从什么时候开始 3 / 5 = 0?

所以我有一段很好的复杂的 C# 代码,用于处理数学方程的替换。它工作得几乎完美。但是,当给定方程(x - y + 1) / z和值x=2 y=0 z=5时,它会惨遭莫名其妙地失败。

问题不在于将值错误地传递给函数。没关系。问题是不管我用什么类型,C#似乎都认为3/5=0。

这是有问题的代码:

它被传递args为:

(顺便说一下,使用 NCalc,所以Pow()函数会被它评估——这很好用。)

结果?difference = 0.

float使用和尝试简单数学时也会发生同样的事情:

产生相同的结果。

这是怎么回事?

0 投票
2 回答
1657 浏览

c# - 运算符“+”不能应用于“十进制”和“双精度”类型的操作数 - NCalc

我正在使用NCalc来评估复杂的表达式。但是我发现了一个大问题。

一个简单的公式,如new Expression("Abs(-1) + Cos(2)").Evaluate()抛出异常

在 C# 代码Math.Abs(-1) + Math.Cos(2)中有效,所以要么我做错了什么,要么 NCalc 中存在错误。

有没有人有同样的问题?

有没有人有办法解决吗?

我在项目网站上找到的与此错误相关的唯一线程已经很老了,并且谈到了编辑源代码。 https://ncalc.codeplex.com/discussions/346702

我还在他们的论坛上发布了一个问题,但 StackOverflow 通常更具动态性。 https://ncalc.codeplex.com/discussions/613634

0 投票
1 回答
1986 浏览

.net - 在 NCalc 中,为什么 'if (12 > 8)' 解析为 false?

全新的 NCalc。

我有一个要评估的公式,我得到了一些意想不到的(对我来说)结果。

使用的 @T_No_Starters 参数 = 12。

如果公式为 if (@T_No_Starters >= 8 ,'T','F') Result FALSE

如果公式if (@T_No_Starters >= 8.0 ,'T','F')结果为 TRUE

如果公式if (@T_No_Starters >= 10 ,'T','F')结果为 TRUE

我不确定发生了什么,为什么 8 为假而 8.0 为真但 10 又是一个整数是真?如何确保评估始终正确?我要把每个数字都变成十进制吗?我可以设置参数类型之类的东西吗?当我输入我的参数?

下面是我用来达到上述目标的测试代码。

我最好不要将公式中的值更改为十进制。大于或等于 8 个启动器而不是 8.0。只是看起来不太对。参数字典是字符串和字符串,我必须使用它,因为有些是字符串。是否像在需要值时确保参数是值一样简单?

0 投票
1 回答
469 浏览

ncalc - NCalc 可以配置为将布尔值评估为 0 或 1 吗?

我只是感到意外,因为管理层认为在计算中使用布尔表达式是个好主意,例如

我使用 NCalc 进行公式评估,不幸的是 NCalc 抱怨因为我试图将整数和布尔值相乘。

有没有办法扩展 NCalc 以便将 false 转换为 0,将 true 转换为 1,或者我是否必须深入挖掘并对 NCalc 代码库进行一些修改?

0 投票
2 回答
1068 浏览

c# - NCalc Expression.Evaluate() 给出错误的输出

我们有类似的代码

原始表达式:- [OD1000]=[OD1100]+[OD1200]+[OD1350]+[OD1450]

评估后调用解析表达式:- {([OD1000])= (((([OD1100])+ ([OD1200])+ ([OD1350])+ ([OD1450])}

通过添加参数值进行测试,如下所示

1) 9.33 = 2.25 + 3.25 + 1.5 + 2.33

2) 15617031.48 = 15226149.36 + 166208.00 + 0.00 + 224674.12

评估后 1) 将返回 true 并且 2) 将返回 false 尽管两个表达式都是正确的。

请建议。

0 投票
1 回答
645 浏览

c# - 引用 Guid 的 NCalc 自定义函数

我正在尝试使用 NCalc 从 JSON 文件中解析一些公式。

但是有时我需要通过 GUID 引用另一个对象并获取该对象公式:

SetValue()引发异常(对于 Double 而言 Value 太大或太小),并且永远不会调用自定义函数。

我怀疑它正在尝试解析 GUID。这是正确的吗?我试图用 NCalc 做的事情是可能的吗?有更好的工具吗?

0 投票
0 回答
610 浏览

c# - c#ncalc - 第 1:1 行在 'x' 处缺少 EOF

我正在玩一个遗传算法来解决方程。所以我发现了这个名为 NCAL 的库,这似乎是一个不错的选择。

所以我尝试生成一些随机字符串,这些字符串将成为这样的 NCALC 表达式:

然后我想遍历这些元素并根据我的目标函数检查总和,如下所示:

看起来很简单,但我一直收到这个异常说“第 1:1 行在 'x' 处缺少 EOF”。关于如何解决这个问题的任何建议?或者更简单的方法。:) 我希望能够找到一个代表目标函数的方程。

br

0 投票
1 回答
760 浏览

c# - Ncalc 小数除以小数

有没有办法在 Ncalc 中将一个小数除以另一个小数?

当我尝试

我得到:

“运算符'/'不能应用于'decimal'和'double'类型的操作数”。

0 投票
2 回答
867 浏览

c# - 将 NCalc 表达式转换为字符串

我必须使用 NCalc 计算字符串输入,但我想将它(结果)保存为字符串。我怎么做?

以下代码返回错误:

有没有办法将它转换为字符串?或者也许是其他方式?提前致谢!;)