Mi a különbség a float, double és decimális a mysql

Mi a különbség a float, double és decimális a mysql

Valószínűleg minden fejlesztő előbb vagy utóbb szembe a problémával vet lebegőpontos számok. A lényege az ilyen problémák, hogy a több hozzáadott vagy képest, az eredmény ebben az esetben rossz, azt a benyomást keltve, hogy valahol hiba a kódban. A hiba nem a kódot, és a kiválasztott adat típusát. Itt fogja megvitatni a különböző típusú adatok tárolására tört számok a MySQL.







Tárolására használt lebegőpontos számok (valós számok). Száma írt SQL-lekérdezés nem feltétlenül ugyanaz, mint az egyik az adatbázisban tárolt. Ezért fel kell készíteni a probléma a minta összehasonlításával, hozzátéve, és megállapította, az ilyen számokat. Az a tény, hogy az úszós tárolja közelítő érték. Nagyjából 2,5 + 2,5 nem lesz pontosan egyenlő 5, így a művelet belül kerül sor a szerver hogyan 2,500001 2,499999 +, általában azok jelentése egyértelmű.







Az elv ugyanaz, mint az úszó, csak szélesebb tárolt számok: Float tárolási kiosztott 4 byte a Double - 8 bájt. Vagyis ahelyett, hogy a két használható Float, nem kerülheti el a hibát, bár meg fog jelenni sokkal ritkábban (mivel nagyobb a lehetséges értékek)

Tizedes és numerikus

Az ilyen típusú segítséget, hogy elkerülhető legyen a tárolás és visszakeresés. Úgy tárolja a pontos értéket, például, amikor a szám 2,5, és ez lesz tárolva, keresett, add / kivonni pontosan és garantált. Ezek az adattípusok kifejezetten tárolására könyvelési adatok, mint az árak, bérek, számlaegyenleg, stb Természetesen az ilyen dolgok elfogadhatatlan hiba, ezért az ilyen típusú kell használni, ahol gyakran a pontos aritmetikai vagy logikai műveletek.

Természetesen a természet a leírt dolgok sokkal nehezebb. Nem célja, hogy írunk egy hatalmas Talmud, és megpróbált mindent megmagyarázni rövid és egyszerű nyelven.




Kapcsolódó cikkek