问题标签 [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 投票
2 回答
1940 浏览

ncalc - 如何处理 NCALC 的 IF 表达式中的 null

我有一个复杂的 NCALC if 表达式,如下所示:

这给了我一些意想不到的错误,如下所示:

在第 1:6 行的 '==' 处缺少 ')'

在第 1:37 行的“UnsetValue”处缺少 EOF

这里有什么问题 - 如果 NCALC 支持 null,我找不到。如果是这样,那么上面的表达式可能有什么问题。请帮忙!!

0 投票
1 回答
1583 浏览

c# - NCalc 缺少 EOF

我试图使用 NCalc 评估表达式,

我一直收到此错误:

在第 1:1 行的“[x]”处缺少 EOF

不知道为什么我会收到此错误?变量的方括号是否与此有关?

0 投票
0 回答
75 浏览

c# - 在大型(内存中)平面表上评估动态创建的公式

我目前正在使用此代码:

这里是假的“动态”表达式/公式:

添加 10000000 行“平面文件”的 10 列。执行速度不是很快,如果我有 1 亿行的话,我会达到限制。我可以做些什么来更快地执行上述操作,还是应该使用其他一些技术来执行这样的动态创建的公式?不确定 MySql 的速度有多快——在这里我会通过(例如 Dapper)将公式作为 SQL 生成到数据库。

0 投票
1 回答
1894 浏览

c# - 字符串中的数学表达式:NCalc 的替代方案

我需要从文件数学表达式中读取并评估它的值。示例表达式格式如下:

  • "5"- 持续的
  • "3.1415 * 0.25"- 常量表达式
  • "{0} - 50"- 带有值占位符 ( String.Format())的表达式
  • "Abs({0} - 50)"- 就像 up 但有数学函数

到目前为止,我一直在使用 NCalc,它工作得很好,直到它不得不处理如下表达式:

  • "3.0 * Abs({0} + 34)"

不幸的是,在以下代码的结果上方的示例中:

是以下异常:

System.InvalidOperationException

运算符“*”不能应用于“double”和“decimal”类型的操作数 NCalc.Numbers.Multiply(object, object) NCalc.Domain.EvaluationVisitor.Visit(NCalc.Domain.BinaryExpression) NCalc.Domain.BinaryExpression。接受(NCalc.Domain.LogicalExpressionVisitor)NCalc.Expression.Evaluate()

似乎 Abs() 方法返回小数并且 NCalc 无法处理和之间的计算doubledecimal可能是错误?)。所以我想问一下我可以使用哪些替代库来代替 NCalc?或者也许除了表达式还有其他解决方法:

  • "Abs(3.0) * Abs({0} + 34)"

?

0 投票
1 回答
415 浏览

c# - NCALC:数组比较

我正在尝试将一组元素与一个值进行比较,有没有办法使用 ncalc 来做到这一点?

例子:

我想要的结果是 FALSE 到 ([1,2,3] > 1 ),因为并非所有元素都遵守规则。

0 投票
1 回答
239 浏览

c# - NCalc Evaluate() 给出错误答案

我对 NCalc 有疑问:我正在尝试通过将表达式写入文本框中,然后让程序使用它来对变量求和/相乘,来实现一种将表达式添加到程序中的方法。这是一个例子:

我想在 textBox3 中编写表达式,在 textBox2 中编写“b”变量的值,并将结果收集到 textBox1 中。但是,例如,如果我尝试使用:

  • 文本框2 = "3"

  • 文本框3 = "b+a"

结果是“31”而不是 4。怎么了?

0 投票
0 回答
410 浏览

c# - 如何阻止 NCalc 写入控制台?

我正在使用 NCalc 在控制台应用程序中进行数学评估。它不断向控制台发送大量信息(特别是在执行 Evaluate() 函数时)。我找不到文件来阻止这种情况。例如:

我在哪里定义 NCalc 的输出详细程度?谢谢

这是我的 App.config 的样子(我删除了 appSettings 部分。此外,您在此处看到的日志记录部分适用于 Quartz.NET):

0 投票
1 回答
721 浏览

c# - 如何使 NCalc 使用十进制类型而不是双精度类型进行计算?

我目前正在使用 Windows 窗体制作计算器,并且正在使用字符串数据类型来存储用户输入的数学表达式。除了,当想要将它转换为可以给我结果的数据类型时,我需要使用评估器,所以我将 NCalc 库添加到我的项目中,但它将它转换为双精度,我希望它给我一个小数作为出于精度原因输出。

有什么方法可以配置 NCalc 来decimal代替执行计算double?如果不可能,那么什么是有效的替代方案?

它不是这样工作的,但这是我想要的想法。但是我使用哪种方式来转换它并不重要,我只想将字符串 wut==ith 一个数学表达式转换为带有结果的小数。

0 投票
1 回答
89 浏览

string - 简化和评估数学字符串

在VB中评估/简化数学字符串的最简单方法是什么?

例如:"k*k+(5+2*5)k+k"将简化为"k^2+15k+k"并将"5^2+3"评估为28

为了评估,我通过简单地使用评估函数来使用NCalc,但它不会简化表达式。简化方程的最简单方法是什么?

0 投票
0 回答
32 浏览

mysql - 在某些装有 Windows 10 的电脑上启动 Mysql 服务时未启动

我在 windows 10 pro 和 windows 10 home 单语言版本上都面临问题。首先,mysql 服务没有自动启动,而且我被迫重新启动/回收应用程序池,以便我的 ncalc.dll 正常工作以评估公式。

关于 Ncalc.dll。该公式没有被评估并在 IIS 上部署的代码上引发错误,但是当我重新启动与其关联的应用程序池时,公式开始得到评估。

我对这个问题感到震惊,我无法在我的 Windows 10 副本上复制它。该问题仅在指定的两个版本的 Windows 上出现,但并非在所有 Windows 10 上都出现。产生问题的硬件配置(2 台不同的 pc)都是Dell Core i5 8265U CPU 1.60GhZ。两台机器都在相同的配置上运行。

对于 1 台 PC,以前使用 Ncalc(应用程序池)不存在问题,但从一开始就使用 Mysql,但从昨天开始,mysql 和 Ncalc(应用程序池)都会出现问题

有人可以帮我解决这个问题。它是与最近的一些 Windows 更新或硬件有关还是主要与 Windows 10 有关。我尝试了很多排列,但最终无法复制。以前有人遇到过类似的问题吗?