[ madcama @ 05.10.2013. 13:55 ] @
Kako da zaokružim sve brojeve u okviru neke skripte ili još bolje na nivou sajta na dve decimale, a da ne idem od promenljive do promenljive.
Najbolje bi bilo da ima mogućnosti number_format() funkcije, ali ako ništa drugo može da radi i na nivou round().
Dakle voleo bih da mi svi brojevi izgledaju xxx yyy,zz.

Hvala na pomoći.
[ ivan.a @ 05.10.2013. 14:51 ] @
Sve zavisi kako je napisan kod. Ako se sve odvija pre HTML koda, onda verovatno možeš jednostavno filtrirati i izmeniti sve brojeve. Međutim, ako je php kod miksovan sa HTML-om, onda sve radiš ručno.
Postoji i treća varijanta koristeći output buffering (ob_start). Ali ovo treba koristiti jedino ako nemaš drugo rešenje.
[ madcama @ 05.10.2013. 20:42 ] @
Do sada sam to radio ovako
Code:
$a=$b*$c;
$a1=number_format($a, 2, ',', ' ');
echo $a1;


I tako za svaku promenljivu.

Bilo bi sjajno kada bih na globalnom nivou mogao da podesim u kom će se formatu prikazivati brojevi.
[ deZio @ 05.10.2013. 21:10 ] @
Jednostavno idi ovom logikom:
Code (php):

$a = $b * $c;
$d = $e * $f;
// ... neki kod ...
echo number_format($a, 2, ',', ' ');
echo number_format($d, 2, ',', ' ');
 


ili možda još lakši način:
Code (php):

function echo_dec_broj( $broj, $br_decimala = 2, $dec_znak = ',', $hiljade_znak = ' ' ) {
     echo number_format( $broj, $br_decimala, $dec_znak, $hiljade_znak );
}

$a = 0.5 * 3;
$d = 16 / 24;

echo_dec_broj( $a ); // ispisaće: 1,50
echo_dec_broj( $d ); // ispisaće: 0,66
echo_dec_broj( 6 * 14 - 8 + 54 * 16 / 3 * 105 / 157 * 200 ); // ispisaće: 38 598,29
 
[ ivan.a @ 06.10.2013. 03:01 ] @
Na šta tačno misliš kada kažeš "na globalnom nivou"?
Da li hoćeš da u nekoj liniji koda promeniš format broja, što će da utiče na sve brojeve?
Ako ranije nisi pripremio funkciju za ovo onda ćeš ipak morati da menjaš sve ručno.
Međutim, ukoliko si brojeve smestio u npr. niz za kasniji prikaz u okviru HTML koda, onda možeš ponovo "pročešljati" niz i filtrirati/formatirati brojeve po želji pre prikaza.

Primer funkcije:
Code (php):

function FormatBroja( $vrednost, $dec = 2, $znak = ',', $sep = ' ' ) {
     return number_format( $vrednost, $dec, $znak , $sep  );
}

echo FormatBroja( 501235.25 );
echo "<br>";
echo FormatBroja( 12.05 );
 


edit: tek sada vidim da je funkcija gotovo identična kao u postu iznad...