Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle Banker-Regel

Genaue Dezimalarithmatik ist ein großes und komplexes Thema.

Google 'Mike Colishaw Dezimalrundung', wenn du das ähm Orakel zu diesem Thema lesen möchtest.

Grundsätzlich sind viele Rundungsschemata möglich:-

Alles abrunden - die Standardeinstellung in den meisten Sprachen, einschließlich C, da Oracle in C geschrieben ist, das ist wahrscheinlich der Grund, warum sie dies tun.

Runden Sie alles auf - selten gesehen, aber gelegentlich muss es wegen undurchsichtiger Markt- und Steuerregeln implementiert werden.

Grundlegende Halbrundung - alles über 0,5 wird aufgerundet, alles andere wird abgerundet.

Großzügige Halbrundung – alles unter 0,5 wird abgerundet, alles andere wird aufgerundet.

Bankers Rounding - Gerade Zahlen folgen der Basic Half Rounding-Regel, ungerade Zahlen der Generous Half Rounding-Regel. Dies ist selten bei tatsächlichen Banken der Fall, die es vorziehen, aufzurunden, wenn die Gelder in ihre Richtung kommen, und abzurunden, wenn sie in die Richtung des Kunden gehen.

ORACLE NUMBER ist eigentlich eine ziemlich gute dezimale Arithmetik-Implementierung und so weit wie möglich genau.