Lidé, kteří napsali dokumentaci (kteří si zřejmě nepamatují některé definice z aritmetiky), si sami nejsou jisti tím, co napsali. Na jedné straně na začátku vysvětlení zmiňují ROUND
- ale později, když dají formálnější definici, říkají
„Nejbližší celé číslo“ není formálně definováno v aritmetice a skutečně je povoleno používat tento název pro kolo(x), s výjimkou případů, kdy je zlomková část x přesně 0,5, v takovém případě je „nejbližší celé číslo“ nejednoznačné a lze se rozhodnout použijte "zaokrouhlení dolů" jako vlastní definici "celé číslo nejbližší."
Pokud můžete, nezlobte se příliš podobnými nesrovnalostmi v dokumentaci. Uvidíte mnoho dalších.
Nicméně :MNOHEM horší je, že chování je nekonzistentní. Používám Oracle 12.1 a na svém počítači jsem to právě zkusil a mám
remainder(10, 4) = 2
remainder( 6, 4) = -2
Žádný rým ani důvod. Mnohem lepší je udělat si vlastní rozdělení pomocí FLOOR a podobně.
Upravit - Nebo možná existuje nějaký důvod; možná používají definici „nejbližšího celého čísla“, aby v případě rovnosti znamenaly nejbližší sud celé číslo. Stále přináší neočekávané výsledky. Nejlepší je nepoužívat funkci REMAINDER() společnosti Oracle.