Delen via


Rekenkundige expressies

Rekenkundige operatoren zijn optellen (+), aftrekken (-), vermenigvuldigen (*), deling (/), negatie (-) en exponentatie (^). Ze kunnen worden toegepast op operanden van het type Int, BigIntof Double. Daarnaast is voor integrale typen (Int en BigInt) een operator beschikbaar die de modulus (%) berekenen.

Voor binaire operatoren moet het type van beide operanden overeenkomen, met uitzondering van exponentiatie; een exponent voor een waarde van het type BigInt moet van het type Intzijn. Het type van de hele expressie komt overeen met het type van de linkeroperand. Voor exponentiatie van Int en BitIntis het gedrag niet gedefinieerd als de exponent negatief is of meer dan 32 bits nodig heeft om aan te geven (dat wil gezegd, als het groter is dan 2147483647).

Deling en modulus voor waarden van het type Int en BigInt volgen het volgende gedrag voor negatieve getallen:

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

Dat wil dat a % b altijd hetzelfde teken heeft als aen b * (a / b) + a % b altijd gelijk is aaan .

Q# biedt geen ondersteuning voor automatische conversies tussen rekenkundige gegevenstypen of andere gegevenstypen. Dit is met name van belang voor het Result gegevenstype en vereenvoudigt het beperken van de manier waarop runtime-informatie kan worden doorgegeven. Het heeft het voordeel dat onbedoelde fouten worden voorkomen, zoals fouten met betrekking tot precisieverlies.