Prog.Hu

Nettóból bruttó visszanyerése probléma

Keresés
Hírlevél

Nettóból bruttó visszanyerése

2013-09-08T21:47+02:00
mezofi
mezofiProg.Hu
regisztrált tag
nyitotta: mezofi, idő: 2008.04.25. 16:29, moderátor: moderator, megoldás elfogadva: 2008.04.25. 21:07
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben

Kategóriák:Adatbázisok » MySQL

Sorrend:
Időzóna:
Oldalanként:
Oszd meg!
Üdv!
Felhívták a figyelmemet egy kis hibára. A programom elment egy bruttó végösszeget 3.400.000-et. Minden összeget nettósítva tárolok. Ebben az esetben elraktározza a 3.400.000-nek a nettó összegét, és ezt írja be a float típusú mezőbe: 2.83333e+006

Ennek az értéke, ha jól gondolom: 2.833.333,3333
Ha ezt szorzom 1.2-vel akkor vissza kapom a 3.400.000-et.

Itt a gondom. A PhpMyAdminban kiadok egy utasítást.

SELECT ar*1.2 as bruttó FROM `ebolt_rend_tetelek` WHERE id=44
És nem kapom vissza a bruttó összeget, hanem 3.399.996-ot kapok.

Van rá valami módszer, hogy a helyes összeget kapjam vissza?
Kisebb számoknál nincs ez a gond, de a millió felettieknél gond ven.
Köszi
Valószínű, már az 1.2 szorzás előtt nem 2.833.333,3333 van az adatbázisban, hanem le van kerekítve 2833333-ra. Nem egész típusként van tárolva és a törtrészt levágja?

A SELECT ar as bruttó FROM `ebolt_rend_tetelek` WHERE id=44 mit ad vissza? 2.833.333,3333-t? előzmény

sztem próbáld kerekíteni
vagy sql-ben vagy a pphp ban (round vagy ceil talán) előzmény
Valószínű, már az 1.2 szorzás előtt nem 2.833.333,3333 van az adatbázisban, hanem le van kerekítve 2833333-ra. Nem egész típusként van tárolva és a törtrészt levágja?

A SELECT ar as bruttó FROM `ebolt_rend_tetelek` WHERE id=44 mit ad vissza? 2.833.333,3333-t? előzmény
PHP-ben biztos, hogy így jó.

$brutto=ceil($brutto);

előzmény
Ne float-ot használj
Olvasd el (főleg az elejét), aztán eszerint válassz típust előzmény
Felvetődött bennem, hogy az ÁFA biztosan mindíg 20%-os?
(Tudom, hogy nem erre irányult a kérdés, bocsi.) előzmény
Természetesen csak a példa kedvéért írtam a 20%-ot, nem írhattam, hogy valamennyivel szorzom.

Minden terméknek meg kell adni, hogy melyik áfa körbe tartozik. És az áfa kör is végtelenre bővíthető.

A jó megoldás a típus módosítás lett.

Micunak adnám a pontot, de whito már előbb leírta, hogy mi a gond, ezért neki lesz adva. előzmény
Ugyan teljesen másfele tapogatózott:
Nem egész típusként van tárolva és a törtrészt levágja?


De még a kérdésed se olvasta el figyelmesen:
és ezt írja be a float típusú mezőbe: 2.83333e+006


Ha meg egész lenne, akkor
2.833.333*1,2=3399999,6
nem pedig 3.399.996 előzmény
Oszd meg másokkal is!