问题标签 [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.
vb.net - 如何在 Visual Basic .NET 项目中安装 NCalc?
我正在制作一个程序,它必须使用 Visual Basic (.NET) 评估函数表达式,如 f(x) = x^2+6x-9。
我想我能做到这一点的唯一方法是使用 NCalc,所以我下载了它,我可以看到它安装在“项目 > 管理 NuGet 包”下。但我只是不知道下一步该做什么。我是否必须在项目中声明某些内容才能使用?因为现在这仍然给出一个错误:
有人能帮我吗?
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
使用和尝试简单数学时也会发生同样的事情:
产生相同的结果。
这是怎么回事?
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
.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。只是看起来不太对。参数字典是字符串和字符串,我必须使用它,因为有些是字符串。是否像在需要值时确保参数是值一样简单?
ncalc - NCalc 可以配置为将布尔值评估为 0 或 1 吗?
我只是感到意外,因为管理层认为在计算中使用布尔表达式是个好主意,例如
我使用 NCalc 进行公式评估,不幸的是 NCalc 抱怨因为我试图将整数和布尔值相乘。
有没有办法扩展 NCalc 以便将 false 转换为 0,将 true 转换为 1,或者我是否必须深入挖掘并对 NCalc 代码库进行一些修改?
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 尽管两个表达式都是正确的。
请建议。
c# - 引用 Guid 的 NCalc 自定义函数
我正在尝试使用 NCalc 从 JSON 文件中解析一些公式。
但是有时我需要通过 GUID 引用另一个对象并获取该对象公式:
SetValue()
引发异常(对于 Double 而言 Value 太大或太小),并且永远不会调用自定义函数。
我怀疑它正在尝试解析 GUID。这是正确的吗?我试图用 NCalc 做的事情是可能的吗?有更好的工具吗?
c# - c#ncalc - 第 1:1 行在 'x' 处缺少 EOF
我正在玩一个遗传算法来解决方程。所以我发现了这个名为 NCAL 的库,这似乎是一个不错的选择。
所以我尝试生成一些随机字符串,这些字符串将成为这样的 NCALC 表达式:
然后我想遍历这些元素并根据我的目标函数检查总和,如下所示:
看起来很简单,但我一直收到这个异常说“第 1:1 行在 'x' 处缺少 EOF”。关于如何解决这个问题的任何建议?或者更简单的方法。:) 我希望能够找到一个代表目标函数的方程。
br
c# - Ncalc 小数除以小数
有没有办法在 Ncalc 中将一个小数除以另一个小数?
当我尝试
我得到:
“运算符'/'不能应用于'decimal'和'double'类型的操作数”。
c# - 将 NCalc 表达式转换为字符串
我必须使用 NCalc 计算字符串输入,但我想将它(结果)保存为字符串。我怎么做?
以下代码返回错误:
有没有办法将它转换为字符串?或者也许是其他方式?提前致谢!;)