Orang-orang yang menulis dokumentasi (yang tampaknya tidak mengingat beberapa definisi dari aritmatika) sendiri tampaknya tidak yakin dengan apa yang mereka tulis. Di satu sisi, di awal penjelasan mereka menyebutkan ROUND
- namun kemudian ketika mereka memberikan definisi yang lebih formal, mereka mengatakan
"Bilangan bulat terdekat" tidak didefinisikan secara formal dalam aritmatika, dan memang seseorang diizinkan untuk menggunakan nama itu untuk putaran(x) kecuali jika bagian pecahan dari x tepat 0,5, dalam hal ini "bilangan bulat terdekat" adalah ambigu dan seseorang dapat memilih untuk gunakan "bulatkan ke bawah" sebagai definisi mereka sendiri tentang "bilangan bulat terdekat."
Jangan terlalu kesal dengan inkonsistensi seperti itu dalam dokumentasi, jika Anda bisa. Anda akan melihat lebih banyak lagi.
Namun :Yang JAUH lebih buruk adalah bahwa perilakunya tidak konsisten. Saya menggunakan Oracle 12.1, dan di mesin saya, saya baru saja mencoba dan saya mendapatkan
remainder(10, 4) = 2
remainder( 6, 4) = -2
Tidak ada sajak atau alasan. Jauh lebih baik untuk melakukan pembagian sendiri, menggunakan LANTAI dan semacamnya.
Sunting - Atau mungkin ada beberapa alasan; mungkin mereka menggunakan definisi "bilangan bulat terdekat" yang berarti, dalam kasus seri, genap terdekat bilangan bulat. Masih menghasilkan hasil yang tidak terduga, sebaiknya tidak menggunakan fungsi REMAINDER() Oracle.