4.1 KiB
machine_translated | machine_translated_rev | toc_priority | toc_title |
---|---|---|---|
true | e8cd92bba3 |
35 | Aritmetik |
Aritmetik fonksiyonlar
Tüm aritmetik işlevler için, sonuç türü, böyle bir tür varsa, sonucun sığdığı en küçük sayı türü olarak hesaplanır. Minimum, bit sayısına, imzalanıp imzalanmadığına ve yüzüp yüzmediğine bağlı olarak aynı anda alınır. Yeterli bit yoksa, en yüksek bit türü alınır.
Örnek:
SELECT toTypeName(0), toTypeName(0 + 0), toTypeName(0 + 0 + 0), toTypeName(0 + 0 + 0 + 0)
┌─toTypeName(0)─┬─toTypeName(plus(0, 0))─┬─toTypeName(plus(plus(0, 0), 0))─┬─toTypeName(plus(plus(plus(0, 0), 0), 0))─┐
│ UInt8 │ UInt16 │ UInt32 │ UInt64 │
└───────────────┴────────────────────────┴─────────────────────────────────┴──────────────────────────────────────────┘
Aritmetik fonksiyonlar, uint8, Uİnt16, Uİnt32, Uint64, Int8, Int16, Int32, Int64, Float32 veya Float64 türlerinden herhangi bir çift için çalışır.
Taşma, C++ile aynı şekilde üretilir.
artı (a, b), A + B operatörü
Sayıların toplamını hesaplar. Ayrıca bir tarih veya tarih ve Saat ile tamsayı numaraları ekleyebilirsiniz. Bir tarih durumunda, bir tamsayı eklemek, karşılık gelen gün sayısını eklemek anlamına gelir. Zamanla bir tarih için, karşılık gelen saniye sayısını eklemek anlamına gelir.
eksi (a, b), A - B operatörü
Farkı hesaplar. Sonuç her zaman imzalanır.
You can also calculate integer numbers from a date or date with time. The idea is the same – see above for ‘plus’.
çarp operatorma (a, b), A * B operatörü
Sayıların ürününü hesaplar.
böl (a, b), A / B operatörü
Sayıların bölümünü hesaplar. Sonuç türü her zaman bir kayan nokta türüdür. Tam sayı bölümü değildir. Tamsayı bölümü için, ‘intDiv’ işlev. Sıfıra bölerek zaman olsun ‘inf’, ‘-inf’, veya ‘nan’.
ıntdiv(a, b)
Sayıların bölümünü hesaplar. Tamsayılara bölünür, yuvarlanır (mutlak değere göre). Sıfıra bölünürken veya en az negatif sayıyı eksi bir ile bölürken bir istisna atılır.
ıntdivorzero(a, b)
Farklıdır ‘intDiv’ bu, sıfıra bölünürken veya en az bir negatif sayıyı eksi bir ile bölerek sıfır döndürür.
modulo (a, b), A % B operatörü
Bölünmeden sonra kalan hesaplar. Bağımsız değişkenler kayan nokta sayılarıysa, ondalık bölümü bırakarak tamsayılara önceden dönüştürülürler. Kalan C++ile aynı anlamda alınır. Kesik bölme negatif sayılar için kullanılır. Sıfıra bölünürken veya en az negatif sayıyı eksi bir ile bölürken bir istisna atılır.
moduloOrZero(a, b)
Farklıdır ‘modulo’ bölen sıfır olduğunda sıfır döndürür.
negate (a), - bir operatör
Ters işareti ile bir sayı hesaplar. Sonuç her zaman imzalanır.
abs (a)
A
sayısının mutlak değerini hesaplar. Yani, < 0 ise,- A döndürür. imzasız türler için hiçbir şey yapmaz. İmzalı tamsayı türleri için imzasız bir sayı döndürür.
gcd (a, b)
Sayıların en büyük ortak böleni döndürür. Sıfıra bölünürken veya en az negatif sayıyı eksi bir ile bölürken bir istisna atılır.
lcm(a, b)
Sayıların en az ortak katını döndürür. Sıfıra bölünürken veya en az negatif sayıyı eksi bir ile bölürken bir istisna atılır.