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

算术表达式

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

对于二进制运算符,两个作数的类型必须匹配,除指数外;BigInt 类型的值的指数必须为类型 Int。 整个表达式的类型与左侧作数的类型匹配。 对于 IntBitInt的指数,如果指数为负或需要超过 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 数据类型,有助于限制运行时信息传播方式。 它的优点是避免意外错误,例如与精度损失相关的错误。