PHP in decimalke

Noh, pa imam problem, delam online "menjalnico"

problem je da ko iz baze poberem števila za pretvarjanje so recimo 1,38 in jih dobim kot string ...

zato PHP z njimi računa kot 1 če imam recimo 1,38 :confused:

ve kdo kako to rešit ? Polje v bazi je int, tudi z varchar ni delalo ...

13 odgovorov

v integer shranjujes decimalke?

Saj imaš float podatkovni tip tudi v bazi.

Saj imaš float podatkovni tip tudi v bazi.

Sem dal na float, in vse decimalke so zginile ...

pa ok

UPDATE `aktualno_menjalnica` SET `vrednost_eur` = '16,7' WHERE `aktualno_menjalnica`.`id` =3 LIMIT 1 ;

in pri ID 3 se pojavi 16

kaj mi potem koristi float ?

@ Vini
sedaj sem imel v varchar 255, po novem je float, samo še vedno ni tisto pravo, ker ne dela :(

varchar za stevilke? very smart :)

poskusi s pravilnim formatom (16.7 v tvojem primeru), pa bo delovalo :)

Zakaj imas pa tisti "LIMIT 1" v queryju?

@Vini, hvala sedaj res dela :o

LIMIT 1 ? Ker sem delal v phpMyAdmin-u pa ima očitno take querye, skopiral sem sql iz php myadmina ...

A bi lahko dobil še kak namig kako naj računa še z zelo velikimi števili ?

recimo da pretvarjam 1 mm v 1 km ... dobim tole: 1E-06 :confused:

mogoče http://si2.php.net/manual/en/ref.bc.php samo si ne znam ravno kaj dosti pomagat .. s tem :o

Od kod "dobis" tole? Poskusi se pocasi zacet izrazat tako, da bo kdo razumel, kje je problem... Povej, kaj tocno pocenjas, pa bomo zgruntali kaj... Tole, kar "dobis" je pac ena od oblik prikazovanja floating point numbers...

Kako naj jih prikažem v brez črk pa nwm še vsega, samo števila ?

number_format()

number_format($rezultat, 2, ',', ' ')

mi vrne 1E-06

if(isset($_POST["vrednost"]))
                {
                    if(is_numeric(abs(protect($_POST["vrednost"]))))
                    {
                        if(is_numeric(abs(protect($_POST["zacetna_enota"]))))
                        {
                            if(is_numeric(abs(protect($_POST["koncna_enota"]))))
                            {
                                $rezultat = abs(protect($_POST["vrednost"])) * abs(protect($_POST["zacetna_enota"])) / abs(protect($_POST["koncna_enota"]));
                            } else { $rezultat = "Prosim vnesi število."; }
                        } else { $rezultat = "Prosim vnesi število."; }
                    } else { $rezultat = "Prosim vnesi število."; }
                }

$POST["vrednost"] = 1
$
POST["zacetnaenota"] = 1
$
POST["koncna_enota"] = 1000000