你当前正在访问 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
数据类型尤其重要,并且有助于限制运行时信息的传播方式。 它的好处是可以避免偶然误差,例如与精度损失相关的误差。