fastix®: FormatMoney Funktion entfernt Nachkomma-Null

Beitrag lesen

Moin!

Perfekt danke,

konnte es nun so lösen:
    $sBetrag = ltrim($order_total_display, '0');
    $sBetrag = strtr($sBetrag, array(',' => '.', ' ' => '',));
    $sBetrag = preg_replace('![^0-9.]!', '', $sBetrag);
$gesamtbetrag = number_format($sBetrag, 2);

Nicht perfekt.

Versuche es mal mit '€ 1.234,56' und dann mit '€ 1,234.56'

Mein Tipp wäre:

<?php  
define('NL', "\n");  
print myBetrag('€ 1.234,56').NL;  
print myBetrag('€ 1,234.56').NL;  
print myBetrag('€ 12.34').NL;  
print myBetrag('12,05').NL;  
print myBetrag('12').NL;  
  
function myBetrag($s) {  
    $s = str_replace('.', ',', $s);  
    $s = preg_replace('![^0-9,]!', '', $s);  
    $s = strrev ($s);  
    $a = explode(',', $s, 2);  
    if ( ! isset($a[1]) ) { $a[1]=$a[0]; $a[0]=0; }  
    $a[0] = strrev ($a[0]);  
    $a[1] = strrev ($a[1]);  
    $a[1] = str_replace(',', '', $a[1]);  
    $s = $a[1] . '.' . $a[0];  
    return number_format($s, 2, ',', '.');  
}  
?>

Ich hoffe, ich habe das so primitiv notiert, dass sich Kommentare erübrigen.

Ergebnisse:

1.234,56
1.234,56
12,34
12,05
12,00

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix