PHP number format til danske beløb


Hurtig kopier:

<?
$danskbelob = number_format($phpvalue,2,',','.'); // Vil lave tal som 1.234.567,89
?>

Konverter et nummer til dansk tal format


Et godt dansk tal format er for eksempel sådan: DKK 12.345,67

Men hvis du har et nummer i PHP ser det jo bare sådan ud 12345.67 - hvordan laver man det om, så det viser en korrekt formatering af tallet til 12.345,67?

Svaret er rimelig lige til, for PHP har en funktion der kan håndtere det - denne funktion kaldes number_format.

number_format kan bruges enten som en number_format(nummer) - hvor nummer er et PHP int (nummer) - eller det kan bruges f.eks. som number_format(nummer,2) - hvilket vil vise nummeret med to cifre efter kommaet.

Kommaet vil i så fald være et punktum og ikke som vi kender det fra Danmark - et komma som decimal seperator.

Funktionen number_format har heldigvis også en tredie mulighed, hvor man kan skrive f.eks. number_format(nummer,2,',','.')

number_format(nummer,2,'XXX','YYY')

Hvor er nummeret - er antal cifre efter decimal seperator - er decimal seperatoren og er tusindetal seperator.

Bemærk: hvis du kalder en streng således:

$dansktal = number_format($originalttal,2,',','.');

vil $dansktal nu være en streng (string) og derfor IKKE mere et tal eller nummer. Hvilket betyder at du nu ikke kan lave udregninger med $dansktal.

$opgangettal = $dansktal * 1.25;

vil altså kort sagt fejle.

Eksempel:


At bruge PHP number format kræver en vis viden om hvordan man bruger det - men det er ikke så svært endda.

Eksempel:

<?
$valuestring = 231199.94; 
/*  En værdi i PHP er , altså med punktum som decimal seperator, og ingen tusindetals seperator... 
    Andre eksempler kunne være:
     $valuestring = 231199;
     $valuestring = -231199.9; 
     $valuestring = -231199.124955;
*/

echo number_format($valuestring);
/*  Hvis du bare kører number_format($valuestring); vil den klippe
	  decimalerne af - og vil bare skrive 231.199 - hvor . så bliver tusindetals seperator.
*/

/*  Vil du gerne have den til at skrive det ud i dansk format som
    for eksempel 211.199,94 vil du skulle gøre således: 
*/
echo number_format($valuestring,2,',','.');

/*   Ovenstående laver for det første 2 cifre - tusindetals seperator er sat til punktum 
     og decimal seperator er sat til komma. 
*/
?>

De synes godt om dette · Tom Frank Christensen
Kommentarer:
Du skal være logget ind for at bruge denne funktion.
Brugernavn
Kodeord


Det er gratis at oprette en bruger
Hop til toppen