Heim > Datenbank > MySQL-Tutorial > Detaillierte Einführung in den Unterschied zwischen Decimal-Typ und Float Double in MySQL

Detaillierte Einführung in den Unterschied zwischen Decimal-Typ und Float Double in MySQL

黄舟
Freigeben: 2017-03-24 13:20:17
Original
1984 Leute haben es durchsucht

Der folgende Editor bringt Ihnen einen Artikel über den Unterschied zwischen dem Decimal-Typ in MySQL und dem Float Double (ausführliche Erklärung). Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick auf

MySQL verfügt über nicht standardmäßige Datentypen wie Float und Double, , und es gibt auch Standarddatentypen wie Decimal.

Der Unterschied besteht darin, dass nicht standardmäßige Typen wie Float und Double Näherungswerte in DB speichern, während Decimal Werte in Form von Zeichenfolgen speichert.
Float- und Double-Typen können Gleitkommazahlen (d. h. Dezimaltypen) speichern, aber Float hat einen Nachteil: Wenn die von Ihnen angegebenen Daten eine Ganzzahl sind, werden sie für Sie als Ganzzahl verarbeitet. Auf diese Weise stoßen wir beim Ein- und Auszahlen von Währungswerten natürlich auf Probleme. Mein Standardwert ist: 0,00 und der tatsächliche Speicher ist 0. Wenn ich Währung einzahle und abhebe, ist er ebenfalls 12,00 und der tatsächliche Speicher ist 12.

Glücklicherweise bietet MySQL zwei Datentypen: decimal Dieser Datentyp kann das oben genannte Problem leicht lösen: Der dezimale Typ wird von MySQL als derselbe Typ implementiert, der im SQL92-Standard zulässig ist. Sie werden zum Speichern von Werten verwendet, bei denen es auf Genauigkeit ankommt, beispielsweise geldbezogene Daten.

Datendefinition

float(M,S) M ist die volle Länge, S ist die Länge nach dem Dezimalpunkt. Es gibt viele ungenaue Beispiele im Internet. Kopie lautet wie folgt:

mysql> create table t1(c1 float(10,2), c3decimal(10,2));
Query OK, 0 rows affected (0.02 sec)
mysql> insert into t1 values(9876543.21, 9876543.12);
Query OK, 1 row affected (0.00 sec)
mysql> select * from t1;
+----------------+-----------------+
| c1 | c3 |
+----------------+-----------------+
| 9876543.00 | 9876543.12 |
+----------------+------------------+
Nach dem Login kopieren

2 Zeilen im Satz (0,00 Sek.)

Andere Beispiel: DECIMAL(5,2)

mysql> create table t1(id1 float(5,2) default null,id2 double(5,2) default null,id3 decimal(5,2) default null );
mysql> insert into t1 values(1.2345,1.2345,1.2345);Query OK, 1 row affected, 1 warning (0.04 sec)
mysql> show warnings;
+-------+------+------------------------------------------+
| Level | Code | Message |
+-------+------+------------------------------------------+
| Note | 1265 | Data truncated for column 'id3' at row 1 |
+-------+------+------------------------------------------+
1 row in set (0.00 sec)
Nach dem Login kopieren

1.2345 --- Bis zu 2 Stellen nach dem Dezimalpunkt, damit es gespeichert werden kann, werden die Daten automatisch gespeichert gerundet und abgeschnitten, aber abnehmend

12,34 --- OK

1234,5 --- Da der Dezimalteil weniger als 2 Stellen hat, muss 0 hinzugefügt werden, also Der Wert sollte als 1234,50 gespeichert werden. Daher überschreitet die Gesamtzahl der Ziffern 5 und beim Speichern wird ein Fehler gemeldet.

1.2 --- Füllen Sie den Dezimalteil mit Nullen aus. Speichern Sie gemäß 1.20.

Standardzustandsvergleich

Wenn Längengrad und Maßstab nicht in der Gleitkommazahl geschrieben sind, wird sie entsprechend gespeichert Wenn Präzision und Skalierung vorhanden sind, wird das gerundete Ergebnis automatisch eingefügt, und das System meldet keinen Fehler, wenn Präzision und Skalierung nicht für die Festkommazahl angegeben sind Standardwert dezimal (10,0). Wenn die Daten den Genauigkeits- und Skalierungswert überschreiten, meldet das System einen Fehler.

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Unterschied zwischen Decimal-Typ und Float Double in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage