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