次の方法で共有


算術式

算術演算子は、加算 (+)、減算 (-)、乗算 (*)、除算 (/)、否定 (-)、累乗 (^) です。 これらは、型 IntBigInt、または Double のオペランドに適用できます 。 また、整数型 (Int および BigInt) では、剰余 (%) を計算する演算子を使用できます。

2 項演算子の場合、両方のオペランドの型は、累乗の場合を除き、一致している必要があります。型 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 データ型では重要であり、これによってランタイム情報の伝達方法の制限が助長されます。 利点として、精度の損失といった偶発的なエラーを回避できます。