Le stesse persone che hanno scritto la documentazione (che sembrano non ricordare alcune definizioni dall'aritmetica) sembrano insicure su ciò che hanno scritto. Da un lato, all'inizio della spiegazione menzionano ROUND
- ma poi quando danno una definizione più formale dicono
"Intero più vicino" non è formalmente definito in aritmetica, e in effetti è consentito usare quel nome per round(x) tranne quando la parte frazionaria di x è esattamente 0,5, nel qual caso "intero più vicino" è ambiguo e si può scegliere di usa "arrotonda per difetto" come propria definizione di "intero più vicino".
Non arrabbiarti troppo con tali incongruenze nella documentazione, se puoi. Ne vedrai molti di più.
Tuttavia :Ciò che è MOLTO peggio è che il comportamento è incoerente. Uso Oracle 12.1 e sulla mia macchina ho appena provato e ottengo
remainder(10, 4) = 2
remainder( 6, 4) = -2
Nessuna rima o ragione. Molto meglio fare la tua divisione, usando FLOOR e simili.
Modifica - O forse c'è qualche motivo; forse usano una definizione di "intero più vicino" per indicare, in caso di parità, il pari più vicino numero intero. Continuando a produrre risultati inaspettati, è meglio non utilizzare la funzione REMAINDER() di Oracle.