• Početna
  • O nama
  • LimundoGrad
  • Limundo
  • Kupindo
  • Sigurnost
  • IT
  • Zabava i učenje
  • Plaćanje
  • API
LimundoGrad blog
  • Početna
  • O nama
  • LimundoGrad
  • Limundo
  • Kupindo
  • Sigurnost
  • IT
  • Zabava i učenje
  • Plaćanje
  • API
Home  /  IT  /  PHP Preporuke Petkom – Decimalni brojevi u MySQL bazi
26 oktobar 2012

PHP Preporuke Petkom – Decimalni brojevi u MySQL bazi

Autor:Miodrag Stefanović
IT saveti Ostavite komentar

Čuvanje decimalnih brojeva u MySQL bazi

Ovaj savet nije direktno vezan za PHP, ali je bitan ako baratate sa decimalnim brojevima – što je standardan slučaj kod čuvanja podataka o novčanim tokovima.
U tom slučaju su vam decimale jako bitne, prvenstveno zbog greške u zaokruživanju koja dolazi zbog načina čuvanja decimalnih brojeva. MySQL server generalno podržava dva formata čuvanja decimalnih brojeva:
DOUBLE (FLOAT) i DECIMAL.

Ukoliko ne želite da isprobate način bogaćenja koji je opisan u filmu Superman III, gde snalažljivi programer malom modifikacijom koda na svoj račun prebacuje delove dolara sa treće decimale koji su zbog zaokruživanja nestajali, i tako zbog velikog broja transakcija vrlo brzo prikupi stotine hiljada dolara, za tip kolone u kojoj čuvate podatke o iznosu novca izaberite DECIMAL.

DECIMAL čuva podatke o decimalama sa tačnom preciznošću, dok DOUBLE (i FLOAT) tipovi čuvaju podatke u Mantisa/Eksponent formatu koji je prezican do određene decimale (na primer FLOAT je precizan do otprilike sedme decimale).

Ukratko, to znači da će matematičke operacije nad DOUBLE i FLOAT vrednostima davati pogrešne rezultate. Greška će biti vrlo mala, ali kod operacija sa novcem nema dovoljno male greške.
Na primer sabiranje DOUBLE vrednosti 0.1 + 0.2 će dati rezultat koji će izgledati otprilike ovako: 0.30000000000000002; noćna mora za finansijski sektor. Sabiranje istih ovih vrednosti sačuvanih u DECIMAL formatu će dati tačno 0.3

Primer grešaka do kojih može doći zbog zaokruživanja možete videti i na Google-u:

Google ne može da pogreši – matematika nije u pravu

Detaljnije o ovoj problematici možete pročitati na:
http://www.heldit.com/2009/11/database/mysql-float-vs-decimal-money-datatype/

DOUBLE i FLOAT koristite za velike decimalne brojeve gde vam tačna prezicnost nije ključna, a DECIMAL za čuvanje novčanih iznosa (gde ne želite nikakve greške zaokruživanja)

Fejsbuk komentari

Podeli tekst
Share on Facebook
Share on Twitter
Share on Whatsapp
 Prethodni post Iz naše kuhinje: Baze podataka
Sledeći post   Vrele jesenje teme: odeća, obuća, moda => #etabla

Povezani postovi

  • 5 predmeta koji će vam olakšati pripremanje trpeze

    6. јануара 2021.
  • Pomoć u odabiru prave knjige za poklon

    10. новембра 2020.
  • Putovanje sa psom

    Kako da vam putovanje sa psom bude lakše

    7. октобра 2020.

Ostavite komentar

Advertisement

Popularno na Kupindu

U potrazi ste za udžbenicima za osnovnu ili srednju školu? Pogledajte na Kupindu:

➡️ Udžbenici za osnovnu školu
➡️ Udžbenici za srednju školu

Ovde ćete pronaći udžbenike za svaki razred i izdanja gotovo svih izdavača koje današnje škole traže. Uštedite na kupovini udžbenika.

  • Najpopularnije
  • Poslednji postovi
  • Za sledećih 15 Vladimir Nikolić 22. маја 2021. Limundo 603
  • Hoću da znam šta je neko kupio i prodao Vladan Jović 16. децембра 2013. LimundoGrad 355
  • Kako da ocenim prodavca (a da to bude ispravno)? Ana Mladenović 12. марта 2013. LimundoGrad 248
  • Veštačko nuđenje – istine i laži Vladan Jović 11. јуна 2013. Limundo 234
  • Cenovnik + opcije + brzina Aleksandra Vuković 15. марта 2012. Blog 211
  • dopuni Limundo račun i tokom praznika
    Dopuni Limundo račun i tokom praznika Jovana Marković 21. априла 2022. Plaćanje 0
  • Ponudi manje – nova opcija [test] Vladimir Nikolić 24. јануара 2022. Blog, Limundo 45
  • Otvorena pozicija – PHP Web Developer Vladimir Nikolić 23. децембра 2021. Uncategorized 0
  • Visa akcija za plaćanje predmeta
    Visa akcija za plaćanje predmeta i dopunu računa Vladimir Nikolić 22. новембра 2021. Limundo, Plaćanje 18
  • Mogućnost plaćanja karticom i novi uslovi Vladimir Nikolić 22. новембра 2021. Limundo, Plaćanje 7

Skorašnji komentari

  • Dragana на Pre nego što usvojite macu
  • Anja Divković на Prevareni ste? Vraćamo vam novac!
  • Vladimir Nikolić на Za sledećih 15
  • Zlata Đukić на Prevareni ste? Vraćamo vam novac!
  • Vladimir Nikolić на Za sledećih 15

Vremeplov

© 2008. LimundoGrad d.o.o. Creative Commons License Ovo delo je licencirano pod uslovima licence Creative Commons Autorstvo-Nekomercijalno-Bez prerada 4.0 Međunarodna licenca
LimundoGrad koristi kolačiće u statističke i marketinške svrhe. Nastavkom korišćenja sajta smatramo da ste pristali na upotrebu kolačića.OKViše informacija