• 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

Odustani od odgovora

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
  • 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
  • Kako dopuniti Limundo račun? Vladan Jović 28. децембра 2012. LimundoGrad 182
  • Prvi dani sa štenetom
    Prvi dani sa štenetom u kući Miloš Grabić 20. јануара 2021. Zabava i učenje 0
  • Koji si tip zimskog sportiste? Jovana Marković 13. јануара 2021. Uncategorized, Zabava i učenje 1
  • 5 predmeta koji će vam olakšati pripremanje trpeze Jovana Milenković 6. јануара 2021. Zabava i učenje 0
  • U 2021. vam želimo… Milica Ivić 30. децембра 2020. LimundoGrad, Zabava i učenje 2
  • Nameštaj
    (Intervju) Član gule47: Od obične fotelje do esktravagantnog komada nameštaja Ana Mladenović 23. децембра 2020. Kupindo 0

Skorašnji komentari

  • Lea на Koji si tip zimskog sportiste?
  • Miloš Grabić на Limundo i Kupindo zaštita povećane na 20.000 dinara!
  • Sretenka на U 2021. vam želimo…
  • DRAGAN - NIS на Kako da zaradite na internetu?
  • Tamara на U 2021. vam želimo…

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