sql >> Database >  >> RDS >> Oracle

Oracle Bankers regel

Nauwkeurige decimale rekenkunde is een groot en complex onderwerp.

Google 'mike colishaw decimale afronding' als je het ahem orakel over dit onderwerp wilt lezen.

In principe zijn er veel afrondingsschema's die mogelijk zijn:-

Rond alles naar beneden af ​​- de standaardwaarde in de meeste talen, inclusief C, aangezien Oracle in C is geschreven, dit is waarschijnlijk de reden waarom ze dit doen.

Rond alles af - zelden gezien, maar moet af en toe worden geïmplementeerd vanwege obscure markt- en belastingregels.

Basis halve afronding - alles boven 0,5 rondt naar boven af, al het andere naar beneden.

Royale halve afronding - alles onder 0,5 rondt naar beneden af, al het andere naar boven.

Bankiersafronding - Even getallen volgen de basisregel voor halve afronding, oneven getallen de royale halve afrondingsregel. Dit wordt zelden gezien bij echte banken die er de voorkeur aan geven om naar boven af ​​te ronden als het geld hun kant op komt en naar beneden als het de kant van de klant opgaat.

ORACLE NUMBER is eigenlijk een redelijk goede Decimal Arithmatic-implementatie en is nauwkeurig voor zover het gaat.



  1. Slimme (?) Database-cache

  2. LISTAGG() Functie in Oracle

  3. Door komma's gescheiden tekenreeks in rijen splitsen in mysql

  4. Oracle:alleen-lezen toegang tot het schema voor een andere gebruiker?