Je kunt het niet oplossen, en ik stel voor dat het geen probleem is. Zo bewaart Oracle NUMBER
waarden:met de minste precisie die nodig is. Als u de prijs heeft ingevoerd als 4.00
het zou worden opgeslagen als 4
.
Merk op dat Java ook niet standaard twee decimalen gebruikt bij het weergeven van de waarde. U moet het aantal decimalen opgeven.
En, indien mogelijk, zou ik BigDecimal
. gebruiken in plaats van float
voor de prijs. De float
type is niet precies. Een alternatief is om een van de integer-types te gebruiken (int
of long
) en beheer zelf de decimalen.
Om de prijs voor weergave in uw Java-code op te maken, gebruikt u String.format("%.2f", price)
.
Gebruik TO_CHAR
:
SELECT TO_CHAR(price, '999999990.00'), etc.
Kies het aantal tijdelijke aanduidingen dat het beste bij u past en houd er rekening mee dat Oracle een extra spatie aan het begin van het resultaat zal plaatsen. Het is bedoeld om een minteken te bevatten als het getal negatief is, maar voor nul/positief is het een spatie. Gebruik de FM
. om van de ruimte af te komen modifier in de TO_CHAR
:
SELECT TO_CHAR(price, 'FM999999990.00'), etc.