你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

算术表达式

算术运算符是加法 (+)、减法 (-)、乘法 (*)、除法 (/)、求反 (-) 和求幂 (^)。 它们可以应用于 IntBigIntDouble 类型的操作数。 此外,对于整型类型(IntBigInt),可以使用计算模数 (%) 的运算符。

对于二元运算符,两个操作数的类型必须匹配,但求幂除外;BigInt 类型的值的指数必须是 Int 类型。 整个表达式的类型与左操作数的类型匹配。 对于 IntBitInt 的求幂,如果指数为负数,或者它需要超过 32 位来表示(即大于 2147483647),则行为是不确定的。

IntBigInt 类型的值的除法和取模运算遵循负数的以下行为:

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