> For the complete documentation index, see [llms.txt](https://youyi580.gitbook.io/zentutorial/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://youyi580.gitbook.io/zentutorial/advanced/calculate.md).

# 基本运算

## 所有运算操作符

| 运算符    | 赋值运算符 | 用途    |
| ------ | ----- | ----- |
| `+`    | `+=`  | 加     |
| `-`    | `-=`  | 减     |
| `*`    | `*=`  | 乘     |
| `/`    | `/=`  | 除     |
| `%`    | `%=`  | 取余    |
| `~`    | `~=`  | 连接字符串 |
| `&&`   | `&=`  | 与     |
| `\|\|` | `\|=` | 或     |
| `^`    | `^=`  | 异或    |
| `!`    |       | 非     |
|        | `=`   | 赋值    |
| `==`   |       | 相等    |
| `!=`   |       | 不相等   |
| `<=`   |       | 小于等于  |
| `<`    |       | 小于    |
| `>=`   |       | 大于等于  |
| `>`    |       | 大于    |

## 赋值运算符

赋值运算符，先运算再赋值，比如`i += 1;` 与 `i = i + 1;` 是等价的。其他赋值运算符同理。

## 如果发生了意外

当数学运算结果发生意外时，很有可能是你使用不同类型的数字。 比如 `13 % 6.5` 结果为 1，可是正确结果应该是 0 啊，究竟发生了什么？ ZenScript 总是会对运算的两个数据类型进行处理，使其成为相同类型。在上述例子中，它就会将第二个数据转换，用以匹配第一个数据。 在上述例子中，计算就会处理成 `13 % 6`，第二个数字（双精度浮点值）就会被强制转换为第一个数字的类型（整型）。

要始终检查两个变量类型是否一致，你可以使用 print 函数来将结果打印至日志中来检查数据是否正确。
