DUBBELE kolommen zijn niet hetzelfde als DECIMALE kolommen, en u krijgt problemen als u DUBBELE kolommen gebruikt voor financiële gegevens.
DOUBLE is eigenlijk gewoon een dubbele precisie (64 bit in plaats van 32 bit) versie van FLOAT . Drijvende-kommagetallen zijn benaderende weergaven van echte getallen en ze zijn niet precies. In feite hebben eenvoudige getallen zoals 0.01 geen exacte weergave in FLOAT- of DOUBLE-types.
DECIMALE kolommen zijn exacte weergaven, maar ze nemen veel meer ruimte in beslag voor een veel kleiner bereik van mogelijke getallen. Om een kolom te maken die waarden van 0,0001 tot 99,9999 kan bevatten, zoals je vroeg, heb je de volgende verklaring nodig
CREATE TABLE your_table
(
your_column DECIMAL(6,4) NOT NULL
);
De kolomdefinitie volgt het formaat DECIMAAL(M, D) waarbij M is het maximale aantal cijfers (de precisie ) en D is het aantal cijfers rechts van de komma (de schaal ).
Dit betekent dat de vorige opdracht een kolom maakt die waarden van -99,9999 tot 99,9999 accepteert. U kunt ook een NIET-ONDERTEKENDE DECIMAL-kolom maken, variërend van 0.0000 tot 99,9999.
Als u bijvoorbeeld een kolom wilt die waarden van -9999.99 tot 9999,99 accepteert, is het commando DECIMAL(6,2)
. Zoals je kunt zien, gebruik je nog steeds een precisie van 6, maar alleen een schaal toestaan van 2.
Voor meer informatie over MySQL DECIMAL de officiële documenten zijn altijd een geweldige bron.
Houd er rekening mee dat al deze informatie geldt voor versies van MySQL 5.0.3 en hoger. Als je eerdere versies gebruikt, moet je echt upgraden.
Update op MySQL 8.0.17+
Unsigned is verouderd voor FLOAT-, DOUBLE- en DECIMAL-kolommen.