Hallo.
Ich habe im Internet folgenden Code gefunden:
leider bekomme ich Ihn bei mir nicht zum laufen.
Es gibt auch Fehlermeldungen: Überall dort wo zwischen ' ' & $str_zahl bzw. ' . ' & $str_zahl bzw. ' , ' & $str_zahl lediglich zwei Kommata stehen meckert er.
Meine Frage: Wie schaffe ich es, dass
eine für die MySql Datenbank gültige Dezimalzahl
ausgibt?
Ich habe im Internet folgenden Code gefunden:
PHP-Code:
/**
* Gibt einen für MySQL gültigen float zurück
*
* @param string $str_zahl
* @return float
*/
function float($str_zahl)
{
if(preg_match('/([0-9\.,-]+)/', $str_zahl, $array_treffer))
{
// Zahl gefunden also können wir weitermachen
$str_zahl = $array_treffer[0];
if(preg_match('/^[0-9.-\s]*[\,]{1}[0-9-]{0,2}$/', $str_zahl))
{
// Komma als Dezimal Separator
// Alle Punkte entfernen und anschließend das Komma in einen
//Punkt umwandeln
$str_zahl = str_replace(' ', , $str_zahl);
$str_zahl = str_replace('.', , $str_zahl);
$str_zahl = str_replace(',', '.', $str_zahl);
return floatval($str_zahl);
}
elseif(preg_match('/^[0-9,-\s]*[\.]{1}[0-9-]{0,2}$/', $str_zahl))
{
// Punkt als Dezimal Separator
// Alle Kommata entfernen
$str_zahl = str_replace(' ', , $str_zahl);
$str_zahl = str_replace(',', , $str_zahl);
return floatval($str_zahl);
}
elseif (preg_match('/^[0-9.-\s]*[\.]{1}[0-9-]{0,3}$/', $str_zahl))
{
// Es gibt nur Tausender Separatoren
// Alle Punkte enfernen
$str_zahl = str_replace(' ', , $str_zahl);
$str_zahl = str_replace('.', , $str_zahl);
return floatval($str_zahl);
}
elseif (preg_match('/^[0-9,-\s]*[\,]{1}[0-9-]{0,3}$/', $str_zahl))
{
// Es gibt nur Tausender Separatoren
// Alle Kommata enfernen
$str_zahl = str_replace(' ', , $str_zahl);
$str_zahl = str_replace(',', , $str_zahl);
return floatval($str_zahl);
}
else
return floatval($str_zahl);
}
else
{
return 0;
}
}
Es gibt auch Fehlermeldungen: Überall dort wo zwischen ' ' & $str_zahl bzw. ' . ' & $str_zahl bzw. ' , ' & $str_zahl lediglich zwei Kommata stehen meckert er.
Meine Frage: Wie schaffe ich es, dass
PHP-Code:
<?php echo $str_zahl; ?>
ausgibt?
Kommentar