Die Speichergröße und der Speicherbereich jedes Gleitkommatyps sind in der folgenden Tabelle aufgeführt:
Typ: Größe: Bereich (mit Vorzeichen): Bereich (ohne Vorzeichen) 75 494 351 E - 38), 0, (1.175 494 351 E-38, 3.402 823 466 351 E+38) | 0, (1.175 494 351 E-38, 3.402 823 466 E+38) | Gleitkommawert mit einfacher Genauigkeit | ==double== | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0, (2.225 073 858 507 201 4 E-308, 1.797 693 134 862 315 7 E+308) | Gleitkommawert mit doppelter Genauigkeit | dezimal | für dezimal(M, D) Wenn M> Diese drei Typen in MySQL sind also alle Gleitkommatypen. Was sind die Unterschiede zwischen ihnen? ?
我们知道一个bytes(字节) 占8位 对吧! float单精度 存储浮点类型的话 就是 ==4x8=32位的长度== , 所以float单精度浮点数在内存中占 4 个字节,并且用 32 位二进制进行描述 那么 double双精度 存储浮点类型就是 ==8x8 =64位的长度==, 所以double双精度浮点数在内存中占 8 个字节,并且用 64 位二进制进行描述 通过计算、那么64位就可以获得更多的尾数! 尾数 : ==就是小数点后的有多少个数位== 所以这里的精度主要取决于==尾数==部分的位数, 所以根据IEEE二进制浮点数算术标准 来计算得出结论:
double 和 float 彼此的区别:
double 和 float 彼此的优缺点:
优点: float单精度在一些处理器上比double双精度更快而且只占用double双精度一半的空间 缺点: 但是当值很大或很小的时候,它将变得不精确。
Dann ist der Speicher-Gleitkommatyp mit doppelter Genauigkeit ==8x8 =64-Bit-Länge==, Die Gleitkommazahlen mit doppelter Genauigkeit belegen also 8 Bytes im Speicher und werden mit 64-Bit-Binärzahlen beschrieben. Durch Berechnung können 64 Bits mehr Mantissen erhalten! Mantisse : ==Dies ist die Anzahl der Nachkommastellen == Die Genauigkeit hängt hier also hauptsächlich von der Anzahl der Ziffern im Teil ==mantisse== ab,Nach dem IEEE-Standard für binäre Gleitkomma-Arithmetik wird also die Schlussfolgerung gezogen:Der Single- Der Präzisions-Dezimalteil von Float kann nur bis zu den hinteren 6 Stellen plus einer Stelle vor dem Komma genau sein, d. h. der 7-stellige Dezimalteil kann bis zu 15 Stellen nach dem Komma plus einer Stelle genau sein Vor dem Dezimalpunkt beträgt die Anzahl der signifikanten Stellen 16 Stellen. Abschließend wird die Länge der Nachkommastellen unterschieden, je länger desto genauer! Der Unterschied zwischen Double und Float: Die Anzahl der im Speicher belegten Bytes ist unterschiedlich , Speicher mit einfacher Genauigkeit belegt 4 Bytes, Speicher mit doppelter Genauigkeit belegt 8 Bytes Der Wertebereich ist unterschiedlich. Berechnet nach IEEE-Standards. Die Verarbeitungsgeschwindigkeit im Programm ist unterschiedlich. Im Allgemeinen verarbeitet die CPU Gleitkommazahlen mit einfacher Genauigkeit schneller als Gleitkommazahlen mit doppelter Genauigkeit haben die Vor- und Nachteile voneinander: float single precisionVorteile: float single precision ist auf einigen Prozessoren schneller als double precision und nimmt nur die Hälfte des Platzes von double double precision ein Nachteile: Wenn der Wert jedoch sehr groß oder klein ist, wird er ungenau.double double precision Vorteile: Im Vergleich zu double und float muss die Mantisse eine höhere Genauigkeit haben, während float nur 7 Stellen an Mantissengenauigkeit hat Verbraucht Speicher und ist doppelt so präzise wie Float! Die Operationsgeschwindigkeit von Double ist viel langsamer als die von Float, da Double mehr Mantissen als Float hat Double- und Float-Szenario!
Zuallererst: Verwenden Sie keine doppelte Genauigkeit, wenn Sie einfache Genauigkeit verwenden können, um Speicher zu sparen und Vorgänge zu beschleunigen! float: Natürlich, wenn Sie den Dezimalteil benötigen und keine hohe Genauigkeit haben Anforderungen: Wählen Sie „Float“ für den Gleitkommavergleich mit einfacher Genauigkeit Der Typ auf dem Prozessor ist tatsächlich schneller als der Typ mit einfacher Genauigkeit. Wenn Sie also Folgendes benötigen: Doppelte Präzision ist die beste Wahl, wenn Sie die Genauigkeit über viele Iterationen hinweg beibehalten oder mit sehr großen Zahlen arbeiten möchten. So viel ist eigentlich eine Frage, wie viele Stellen nach dem Dezimalpunkt übrig bleiben == Zusammenfassung von Double und Float:== Float steht für weniger Dezimalstellen, während Double mehr Dezimalstellen darstellen kann, was mehr ist! genau! Es ist so einfach wie die Auswahl entsprechend der Situation! Was bedeuten die Längen m und d hinter double und float? 🎜🎜🎜double(m,d) und float(m,d) Was bedeuten m und d hier? Was? Viele Freunde sind auch unklar! Lassen Sie mich weiter erklären🎜🎜Tatsächlich haben diese Typen wie die vorherige Ganzzahl int(n) auch zusätzliche Parameter: eine Anzeigebreite m und eine Zahl d nach dem Komma 🎜🎜Zum Beispiel: Die Die Anweisung float (7,3) legt fest, dass der angezeigte Wert 7 Ziffern mit 3 Ziffern nach dem Komma nicht überschreitet. Das Gleiche gilt für Double 🎜🎜In MySQL können beim Definieren von Tabellenfeldern auch Modifikatoren ohne Vorzeichen und Nullfüllung verwendet werden Wird von den Datentypen float, double und decimal verwendet und hat den gleichen Effekt wie oben, ich werde hier nicht auf Details eingehen!🎜🎜==Zusammenfassung:==🎜🎜In der MySQL-Anweisung: Die Tabellenfelder sind tatsächlich definiert. Wenn M in 🎜🎜float(M,D) ohne Vorzeichen die Anzahl der Ziffern darstellt, die verwendet werden können, stellt D die Anzahl der Dezimalstellen nach dem Komma dar, ohne Vorzeichen bedeutet, dass negative Zahlen nicht zulässig sind 🎜 🎜double(M,D) in unsigned Das M stellt die Anzahl der Ziffern dar, die verwendet werden können, und D stellt die Anzahl der Dezimalstellen nach dem Dezimalpunkt dar🎜🎜==Hinweis:== M>=D!🎜🎜🎜dezimal Typ 🎜🎜🎜 == 1. Einführung in Dezimalzahl == 🎜🎜 Beim Speichern von Werten im gleichen Bereich werden normalerweise 4 Bytes für die Speicherung verwendet, und Double verwendet 8 Bytes 🎜🎜 hängt von den Werten von M und D ab, daher benötigt die Dezimalzahl weniger Platz 🎜In der tatsächlichen Entwicklung auf Unternehmensebene stoßen wir häufig auf Felder, in denen der Betrag (3888,00 Yuan) gespeichert werden muss. Zu diesem Zeitpunkt müssen wir den Datentyp „Dezimal“ verwenden. In der MySQL-Datenbank lautet die Syntax für die Verwendung von Dezimalzahlen: dezimal(M,D), wobei Der Bereich von M beträgt 165, Der Bereich von D beträgt 030, Und D kann nicht größer als M sein. ==2.Maximalwert== Ein Feld mit Datentyp „Dezimal“. Was ist der maximale Wert/Bereich, der gespeichert werden kann? Beispiel: dezimal (5,2), dieses Feld kann -999,99 bis 999,99 speichern und der Maximalwert beträgt 999,99. Das heißt, D repräsentiert die Länge des Dezimalteils und (M-D) repräsentiert die Länge des ganzzahligen Teils. ==3.Storage== [Verstehen] Die Datenspeicherform des Dezimaltyps besteht darin, alle 9 Dezimalstellen als 4 Bytes zu speichern (offizielle Erklärung: Werte für DECIMAL-Spalten werden in einem Binärformat gespeichert, das neun Dezimalstellen in 4 Bytes packt). Es ist möglich, dass die Anzahl der eingestellten Ziffern kein Vielfaches von 9 ist. Der Beamte stellt zum Vergleich auch die folgende Tabelle zur Verfügung:
|
Das obige ist der detaillierte Inhalt vonFassen Sie die Unterschiede zwischen Float-, Double- und Decimal-Gleitkommatypen in MySQL zusammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!