你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
算术运算符是加法(+)、减法(-)、乘法(*)、除法(/)、求反(-)和指数(^)。 它们可以应用于 Int、BigInt或 Double类型的作数。 此外,对于整型类型(Int 和 BigInt),计算模数(%)的运算符可用。
对于二进制运算符,两个作数的类型必须匹配,除指数外;BigInt 类型的值的指数必须为类型 Int。 整个表达式的类型与左侧作数的类型匹配。 对于 Int 和 BitInt的指数,如果指数为负或需要超过 32 位来表示(也就是说,如果指数大于2147483647),则行为是不确定的。
Int 类型的值的除法和模数,BigInt 遵循负数的以下行为:
A |
B |
A / B |
A % B |
|---|---|---|---|
| 5 | 2 | 2 | 1 |
| 5 | -2 | -2 | 1 |
| -5 | 2 | -2 | -1 |
| -5 | -2 | 2 | -1 |
也就是说,a % b 始终与 a具有相同的符号,b * (a / b) + a % b 始终等于 a。
Q# 不支持算术数据类型或任何其他数据类型之间的自动转换。 这尤其适用于 Result 数据类型,有助于限制运行时信息传播方式。 它的优点是避免意外错误,例如与精度损失相关的错误。