Přesná desítková aritmatika je rozsáhlý a složitý předmět.
Google 'mike colishaw zaokrouhlování desetinných míst', pokud si chcete přečíst ehm Oracle na toto téma.
V zásadě existuje mnoho možných zaokrouhlovacích schémat:-
Zaokrouhlit vše dolů – výchozí ve většině jazyků včetně C, protože Oracle je napsán v C, to je pravděpodobně důvod, proč to dělají.
Zaokrouhlit vše nahoru – zřídka k vidění, ale občas je potřeba je implementovat kvůli nejasným tržním a daňovým pravidlům.
Základní poloviční zaokrouhlení – cokoliv nad 0,5 zaokrouhlí nahoru, vše ostatní zaokrouhlí dolů.
Velkorysé poloviční zaokrouhlení – cokoliv pod 0,5 zaokrouhlí dolů, vše ostatní zaokrouhlí nahoru.
Zaokrouhlení bankéřů – sudá čísla se řídí pravidlem základního zaokrouhlení na polovinu, lichá čísla pravidlem velkorysého polovičního zaokrouhlení. To je zřídka vidět u skutečných bank, které preferují zaokrouhlování nahoru, pokud peníze přicházejí, a zaokrouhlování dolů, když jdou směrem ke klientům.
ORACLE NUMBER je ve skutečnosti docela dobrá implementace desítkové aritmické soustavy a je přesná, pokud to jde.