如何将带有数字和运算符的字符串转换为数字?

时间:2014-10-21 12:38:20

标签: vb.net string type-conversion

我将TextBox.Text转换为Integer时遇到问题。

该文字仅包含以下格式的数字: 例如:1 + 3 * 6 - (2 - 1)

如何将此文本框(或字符串)转换为Integer以获取计算值?

我在网上找到的任何内容都没有帮助。

2 个答案:

答案 0 :(得分:6)

您可以使用DataTable作为计算器:

Dim calc As New DataTable()
Dim result = CType(calc.Compute("1 + 3 * 6 - (2 - 1)", Nothing), Double) ' 18.0

查看DataColumn.Expression的评论,了解支持的内容。

答案 1 :(得分:0)

以下是使用NCalc(开源库)的答案:

Dim e As New NCalc.Expression("1 + 3 * 6 - (2 - 1)")
Console.WriteLine(e.Evaluate) 'prints 18  

获取NCalc using NuGet

Install-Package ncalc
  

NCalc是.NET中的数学表达式计算器。 NCalc可以解析任何表达式并评估结果,包括静态或动态参数和自定义函数。