Andre: FormatMoney Funktion entfernt Nachkomma-Null

Beitrag lesen

Hallo,

ich hab ein Problem mit einer Funktion, die ich aus einem Forum habe. Diese Funktion soll einen String zu einer Zahl (Geldbetrag, 2 Nachkommastellen) machen.
Das funktioniert auch, ausser der Betrag ist sowas wie "€ 28,05", dann wird aus dem String ein "28,5".

Bei Zahlen wie 28,90 oder so klappt es wunderbar, nur scheinbar nicht, wenn nach dem komma ne 0 ist.
Hat jemand einen Hinweis wieso?

function formatMoney($order_total_display) {  
  
    if(is_int($order_total_display)) return $betrag . '.00';  
  
    $sBetrag = ltrim($order_total_display, '0');  
    $sBetrag = strtr($sBetrag, array(',' => '.', ' ' => '.',));  
    $sBetrag = preg_replace('![^0-9.]!', '', $sBetrag);  
  
    $aBetrag = explode('.', $sBetrag);  
    if(isset($aBetrag[1])) {  
        $iCent = (int) trim(array_pop($aBetrag));  
        if(strlen($iCent) > 2) {  
           $aBetrag[] = $iCent;  
           $iCent = '00';  
        } elseif(empty($iCent)) {  
            $iCent = '00';  
        }  
    } else {  
        $iCent = '00';  
    }  
    $iEuro = (int) trim(implode($aBetrag));  
    if(strlen($iEuro) === 0) {  
        $iEuro = 0;  
    }  
    return (float) $iEuro . '.' . $iCent;  
}  
$gesamtbetrag = formatMoney($order_total_display);

Danke und VG