算术运算符连接一个或两个数值(数字)类型的变量,构成算术运算表达式。常见的算术运算符有+, -, *, /等。
【Excel VBA】
Excel VBA中的算术运算符如表3-1中所示,其中a和b为数值型变量。
表3-1 Excel VBA中的算术运算符
| 运算符 | 说 明 | 表达式 |
|---|---|---|
| + | 相加 | a+b |
| - | 取负或相减 | -a或a-b |
| * | 相乘 | a*b |
| / | 相除 | a/b |
| \ | 整除 | a\b |
| Mod | 求模运算 | a Mod b |
| ^ | 指数运算 | a^b |
下面的过程创建两个短整型变量并给它们赋值,在立即窗口输出这两个变量进行各种算术运算的结果。为了演示整除结果为负数的情况,定义第3个短整型变量并赋给一个负的整数。示例文件的存放路径为Samples\ch03\Excel VBA\算术运算符.xlsm。
code.vba
Sub Test()
Dim intA As Integer
Dim intB As Integer
Dim intC As Integer
intA = 10
intB = 3
intC = -3 '负数用于演示整除结果为负数的情况
Debug.Print intA + intB '两个数相加
Debug.Print intA - intB '两个数相减
Debug.Print intA * intB '两个数相乘
Debug.Print intA / intB '两个数相除
Debug.Print intA \ intB '两个数整除
Debug.Print intA \ intC '两个数整除,结果为负数
Debug.Print intA Mod intB '两个数求模,即求相除后的余数
Debug.Print intA ^ intB '两个数的指数运算
End Sub
运行过程,在立即窗口中输出各算术运算的结果。
code.vba
13
7
30
3.33333333333333
3
-3
1
1000
可见两个数相除时如果不能整除,返回一个浮点数;两个数整除时返回相除结果的整数部分。在Excel VBA中,如果整除的结果为负数,仍然是取整数部分。
【Python】
Python中的算术运算符如表3-2所示,其中a和b为数字型变量。
表3-2 Python中的算术运算符
| 运算符 | 说 明 | 表达式 |
|---|---|---|
| + | 两个对象相加 | a+b |
| - | 负数或两个对象相减 | -a或a-b |
| * | 两个数相乘或字符串等重复扩展 | a*b |
| / | 两个数相除 | a/b |
| // | 整除,向下取整。结果为正时返回相除结果的整数部分,结果为负时返回该负数截尾后-1的结果。变量中至少有1个的值为浮点数时,返回浮点数的结果 | a//b |
| % | 取模,得到相除后的余数 | a%b |
| ** | 指数运算 | a**b |
下面用Python重复3.1.1小节算术运算的示例。
code.python
>>> a=10
>>> b=3
>>> c=-3
>>> a+b #相加
13
>>> a-b #相减
7
>>> a*b #相乘
30
>>> a/b #相除
3.3333333333333335
>>> a//b #整除
3
>>> a//c #整除,结果为负数
-4
>>> a%b #求模
1
>>> a**b #指数运算
1000
可见,Python进行算术运算时的结果与Excel VBA的仅有一处不同,即两数整除时结果为负的情况。此时Excel VBA的结果是直接取整,而Python的结果是取整后减去1。