String to Float -- Datentypenkonvertierung
Dred
- php
Hey, ich habe mir eine kleine Funktion geschrieben, die mir (wenn möglich) Strings zu Float, konvertiert oder sogar zu Integer, wenn dabei der Wert gleichbleibt:
private function ConvertDataType($value){
if(floatval($value) != 0) $value = floatval($value);
if(is_float($value) && ($value == intval($value))) $value = intval($value);
return $value;
}
Leider konvertiert er mir nicht "0.00000e+000", da dann die erste Bedingung nicht erfüllt ist.
Wie kann ich diesen Fall abdecken, ohne das er mir Strings immer nullt?
Grüße,Dred
Warum prüfst du nicht gleich erst mal mit is_float, obs überhaupt ne Zahl ist?
Hi!
Warum prüfst du nicht gleich erst mal mit is_float, obs überhaupt ne Zahl ist?
is_float() macht nur eine Typprüfung und erkennt keine Zahlen in Strings. Das kann nur is_numeric().
Lo!
Wie kann ich diesen Fall abdecken, ohne das er mir Strings immer nullt?
Eine öfters gesehene Lösung:
function typecastNumericString($value) {
if (is_string($value) && is_numeric($value)) {
$fval = floatval($value);
$ival = intval($value);
$value = ($ival == $fval) ? $ival : $fval;
}
return $value;
}