Bagikan melalui


Ekspresi aritmetika

Operator aritmatika adalah penambahan (+), pengurangan (-), perkalian (*), pembagian (/), negasi (-), dan eksponensiasi (^). Mereka dapat diterapkan ke operan jenis Int, BigInt, atau Double. Selain itu, untuk jenis integral (Int dan BigInt), operator yang menghitung modulus (%) tersedia.

Untuk operator biner, jenis kedua operand harus cocok, kecuali untuk eksponensial; eksponen untuk nilai jenis BigInt harus berjenis Int. Jenis seluruh ekspresi cocok dengan jenis operand kiri. Untuk eksponensiasi Int dan BitInt, perilaku tidak ditentukan jika eksponen negatif atau memerlukan lebih dari 32 bit untuk diwakili (yaitu, jika lebih besar dari 2147483647).

Pembagian dan modulus untuk nilai jenis Int dan BigInt mengikuti perilaku berikut untuk angka negatif:

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

Artinya, a % b selalu memiliki tanda yang sama dengan a, dan b * (a / b) + a % b selalu sama dengan a.

Q# tidak mendukung konversi otomatis antara jenis data aritmatika atau jenis data lainnya untuk hal tersebut. Ini sangat penting terutama untuk jenis data Result dan memfasilitasi pembatasan bagaimana informasi runtime dapat disebarluaskan. Ini memiliki manfaat untuk menghindari kesalahan yang tidak disengaja, seperti yang terkait dengan kehilangan presisi.