Sdílet prostřednictvím


Aritmetické výrazy

Aritmetické operátory jsou sčítání (+), odčítání (-), násobení (*), dělení (/), negace (-) a exponentiace (^). Dají se použít na operandy typu Int, BigIntnebo Double. Pro integrální typy (Int a BigInt) je navíc k dispozici operátor, který počítá modul (%).

Pro binární operátory musí typ obou operandů odpovídat, s výjimkou exponenci; Exponent pro hodnotu typu BigInt musí být typu Int. Typ celého výrazu odpovídá typu levého operandu. Pro exponentaci Int a BitIntnení chování definováno, pokud je exponent záporný nebo vyžaduje více než 32 bitů (to znamená, že je-li větší než 2147483647).

Dělení a modul pro hodnoty typu Int a BigInt následující chování pro záporná čísla:

A B A / B A % B
5 2 2 1
5 -2 -2 1
-5 2 -2 -1
-5 -2 2 -1

To znamená, a % b že má vždy stejné znaménko jako aa b * (a / b) + a % b vždy se rovná a.

Q# nepodporuje automatické převody mezi aritmetickými datovými typy ani jinými datovými typy. To je důležité zejména pro Result datový typ a usnadňuje omezení způsobu šíření informací za běhu. Má výhodu v tom, že se vyhne náhodným chybám, jako jsou chyby související se ztrátou přesnosti.