Autor Zpráva
temistokles
Profil
Mám napríklad číslo

0.0128200054169

a chcem z neho len 0.0128. Proste len 4 desatinné miesta. Ako na to? (neviem, či bude na začiatku len 1 číslo - teda v tomto prípade nula, môže tam byť trebárs aj 10)
temistokles
Profil
takze som to vyriesil nejak takto:
$cas = substr($time, 0, 6);

sice to neosetri ak bude cislo >=10... ale to nevadi
centi
Profil
http://mirrors.inway.cz/manual/en/function.round.php
Fred
Profil
PHP : http://www.plus2net.com/php_tutorial/php_math_round.php
JavaScript : http://www.javascriptkit.com/javatutors/round.shtml
DoubleThink
Profil *
temistokles

Substr je řetězcová funkce - vrací řetězec - pro toto použití je tedy nanejvýš nevhodná
Navíc nedojde k zaokrouhlení - jen k uřezání.
maso
Profil *
Jednoduse, vynasob to 10000, pak to zaokrouhli pomoci myslim ze je to prikaz round a pak to zase vydel 10000 a mas to tvoje krasne zaokrouhlene cislo:-)
Leo
Profil
maso a co takhle si precist aspon ten manual kdyz uz odkaz mate o par prispevku vys a neplacat takovy sileny reseni? Leo
maso
Profil *
$x = $x*10000;
$x = round($x);
$x = $x/10000;

Jestli todle je šílené řešení, tak nevim no. Nebudu louskat manuál jenom kvůli tomu abych z kódu odstranil dva řádky (předpokládám , že to bude příkaz na jeden řádek), manuály čtu jen když si nevím rady.
Hugo
Profil
Nebudu louskat manuál jenom kvůli tomu abych z kódu odstranil dva řádky

a tak vznikaji prasacky napsane skripty
maso
Profil *
I tak mi to nedalo a mrknul se na ten manuál, je to opravdu jednoduší, ale to nic nemění na tom, že pokud bych nevěděl kde hledat, tak by mi to opravdu trvalo déle než napsat ony dva zmíněné řádky na víc, nemluvě o tom, že jsem do teď ani o takovémto řešení nevěděl, takže jsem nemohl předpokládat že existuje:-)
Warden
Profil
maso: vas pristup je tedy naprosto neprogramatorsky...:) jinak tyhle praktiky se imho pouzivaly u delphi atd...php to resi samozrejme mnohem lepe :)...ale jestli chcete psat prasacke scripty, proc ne, je to jen a jen na vas :) ale verim, ze jste se poucil :) hodne zdaru
printf
Profil
delphi má samozřejmě taky zaokrouhlovací funkce, navíc má perfektní help který mnohdy nahradí učebnici.
Palladin
Profil *
Do PHP se zasvěcuji čerstvě, ale v knížce na tohle píšou speciální funkce buď
string number_format(float cislo, int presnost, string desetinnaTecka, string oddelovacTisicu)
Funkce může mít buď jeden, dva nebo čtyři parametry
Prvni parametr je povinný - zadávané číslo
Druhý parametr je zde požadovaná přesnost - neboli počet číslic za desetinnou tečkou
poslední dvě jsou nepovinné, implicitně ',' a '.'

Nebo pak by na to myslím šla použít funkce printf, o tom by jistě jeden přispěvatel mohl referovat:-)
printf
Profil
:-)
Mordae
Profil
Pomoc, jen ne printf, zaklínám se vodou, lesem... ne, to sem nepatří, ale prosím, netahejte C do PHP, už tak je tam bordelu dost.

round($number, $decimalPlaces)
, nebo se mýlím?
printf
Profil
jenže funkci printf jsme do PHP nezatáhli my, ale jeho tvůrci, asi proto že je tak neskutečně božská :-)
ještě vhodnější je sprintf:

$cislo = 0.0128200054169;
$vysledek = sprintf ("%01.4f", $cislo); //0.0128

jinak bych taky použil round, ten sprintf je takovej univerzální asi je i náročnejší.
temistokles
Profil
diki vsetkym
Toto téma je uzamčeno. Odpověď nelze zaslat.

0