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. */ ?>