FLOAT típusú változóval számítás
Sziasztok,
ismét kis help kéne: mysql-ből származó float típusú mezőértékekkel végzek műveleteket (összeadást és kivonást). Majd egy másik mezőbe eltárolom az eredményt, ezt változóba teszem és megjelenítem a weblapon.
hiba(?): ha az egyik ilyen művelet után ha 0 értéke lesz a mezőnek, akkor a weblapon és az adatbázisban egy ilyen formátum jelenik meg: 45632e-8 (vagy ilyesmi, a lényeg hogy e-adosban)
Ezt hogy lehet kikerülni/kijavítani?
Köszi előre is a segítséget!
■ ismét kis help kéne: mysql-ből származó float típusú mezőértékekkel végzek műveleteket (összeadást és kivonást). Majd egy másik mezőbe eltárolom az eredményt, ezt változóba teszem és megjelenítem a weblapon.
hiba(?): ha az egyik ilyen művelet után ha 0 értéke lesz a mezőnek, akkor a weblapon és az adatbázisban egy ilyen formátum jelenik meg: 45632e-8 (vagy ilyesmi, a lényeg hogy e-adosban)
Ezt hogy lehet kikerülni/kijavítani?
Köszi előre is a segítséget!
0 értéke lesz
Ugyanis
most kézzel is kiszámoltam
-0,0499999999
kézzel számolva: -0,05
gondolom a round() dolog segítene, de nem értem miért lehet ez... minden float amivel dolgozom :|
Bináris számítás
Pontos(abb) számítások
bcadd
,bcsub
DECIMAL
vagyNUMERIC
típusú mezőt használj, bár ezek pontossága "csak" 64 számjegyű, de jóval kevesebb helyet foglalnak.Ha nem PHPt használsz, minden valószínűség szerint a BCMath könyvtárnak megfelelő létezik az adott nyelvhez is.
PHP és a float
Ha nagy pontosság szükséges, akkor érdemes inkább string alapú aritmetikával számolni.