Dim equation As String
Dim numbers() As String
Dim operators As New List(Of String)
Dim result As Double
Dim rx As New Regex("(\+|\-|\*)+")
Dim matches As MatchCollection
equation = TextBox1.Text
numbers = equation.Split(New String() {"+"c, "-"c, "*"c}, StringSplitOptions.None)
matches = rx.Matches(equation)
Dim m1 As Match
For Each m1 In matches
operators.Add(m1.Value)
Next
result = CInt(numbers(0))
Dim i As Integer
For i = 1 To numbers.GetUpperBound(0)
Select Case operators(i - 1)
Case "*"
result *= CDec(numbers(i))
Case "+"
result += CDec(numbers(i))
Case "-"
result -= CDec(numbers(i))
Case " ^"
result ^= CDec(numbers(i))
End Select
Next
MessageBox.Show(result)
这是我的代码,例如“1 4 2*3”我如何编辑我的代码,首先乘法,然后除法,然后-。有人有主意了吗?
我正在添加mXparser数学解析器库,它是用C#编写的,但符合CLS-它可以很容易地与VB一起使用。请遵循mXparser Hello World VB教程。
Dim e As Expression = New Expression("2+(3-sin(pi))")
mXparser.consolePrintln( e.calculate() )
当做
从高到低顺序如下: ^ not - (一元运算) * / + - ..(字符串连接) < > <= >= ~= == and or
通过前面的学习我们知道运算符有不同的类型,当这些不同类型的运算符出现在同一个表达式中时,就必须遵循运算符的优先级来进行运算,才能保证运算的合理性和结果的正确性、唯一性。运算符的优先级决定了表达式中各个部分执行运算的先后顺序。 下表中详细介绍了 C# 中运算符的优先级顺序: 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[整型表达式] 左到右 () 圆括号 (表
运算符的优先级决定了不同的运算符在表达式中计算的先后顺序,下表列出了 MySQL 中的各类运算符及其优先级。 优先级由低到高排列 运算符 1 =(赋值运算)、:= 2 II、OR 3 XOR 4 &&、AND 5 NOT 6 BETWEEN、CASE、WHEN、THEN、ELSE 7 =(比较运算)、<=>、>=、>、<=、<、<>、!=、 IS、LIKE、REGEXP、IN 8 | 9 & 10
所有的数学运算都认为是从左向右运算的, Java 语言中大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,其中,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。 乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。 一般而言,单目运算符优先级较
问题内容: 在来自http://leepoint.net/notes- java/data/expressions/precedence.html的 一个示例中 以下表达式 被评估为 然后我从http://www.roseindia.net/java/master-java/operator- precedence.shtml 看到了另一个示例 以下表达式 被评估为 我对如何确定在涉及*和/时将首
问题内容: 由于Java中运算符优先级的正确性,我感到困惑。我在教程很久以前读到并具有更高的优先级高于OR,这是在提供的答案确认问题。但是,我目前正在使用《 Sun Java 6认证程序员学习指南》学习Java。本书包含以下示例: 我复制并引用了有关编译器如何处理上述代码的解释: 是,然后是或结果 为,然后打印。由于存在短路,因此对表达式进行评估,好像周围有括号。换句话说,它被评估为之前的单个表达