Format umwandeln einer Zahl...
laserbrain
- php
0 Snafu0 laserbrain0 Snafu0 laserbrain0 Snafu
0 Paul0 dedlfix
0 Tom
Hi Leute,
also ich habe hier ein Problem. Ich bekomme Zahlen geliefert wie z.B.
8,60000000000000E+001 jetzt will ich mit PHP ein 86 daraus machen. Wie kann ich das anstellen. Ich will genrell die Exponenten weg haben und normale Zahlen mit Komma haben...
Hallo!
also ich habe hier ein Problem. Ich bekomme Zahlen geliefert wie z.B.
8,60000000000000E+001
Was heisst du bekommst sie geliefert? Woher?
Ist 8,60000000000000E+001 ein String?
Servus,
Was heisst du bekommst sie geliefert? Woher?
Eine DB2 liefert die Zahl so aus.
Ist 8,60000000000000E+001 ein String?
Ja, gettype sagt, dass es ein String ist.
Hallo!
Wüsste jetzt nicht ob php aus dieser Darstellung eine gültige Gleitkommazahl parsen kann.
Eine DB2 liefert die Zahl so aus.
Kannst du nicht mit der DB die Zahl anders ausspucken?
(float) $foo;
oder settype($foo, float);
den Wert parsen, wenn der String in $foo
steht.Sers,
- das E+001 muss weg
nein das geht nicht, weil auch E+002 o. E+003 da stehen kann.
- statt dem , gehört ein . hin
Das könnte mi PH ersetzen.
Wenn dus mit der DB gleich als 8.600000... ausspucken kannst, dann kannst du einfach mit
(float) $foo;
odersettype($foo, float);
den Wert parsen, wenn der String in$foo
steht.
Das Problem ist, dass diese DB2 sehr wenig kooperativ ist.
Hallo nochmal!
Hm hab gedacht du bekommst die nur mit 10^1 geliefert.
Naja, dir bleibt wahrscheinlich eh nicht erspart was eigenes zusammenzustückeln.
// -------------
function myfloat($foo) {
$foo = explode("E", $foo);
$foo[0] = str_replace(",", ".", $foo[0]);
return ((float) $foo[0]) * pow(10, (float) $foo[1]);
}
//--------------
Fehlerbehandlung nach belieben einbauen.
Hi,
was passiert wenn du number_format($zahl,2) anwendest?
Paul
echo $begrüßung;
also ich habe hier ein Problem. Ich bekomme Zahlen geliefert wie z.B.
8,60000000000000E+001 jetzt will ich mit PHP ein 86 daraus machen. Wie kann ich das anstellen. Ich will genrell die Exponenten weg haben und normale Zahlen mit Komma haben...
Bist du sicher, dass da in Komma als Dezimaltrennzeichen steht? Dann musst du das erstmal mit Stringersetzung zu einem Punkt machen. Dann kannst du mit Typecast zu float oder der Funktion floatval() einen ordentlichen Zahlentyp draus machen, den du anschließend auch nach int typcasten oder mit intval() behandeln kannst.
echo "$verabschiedung $name";
Hello,
also ich habe hier ein Problem. Ich bekomme Zahlen geliefert wie z.B.
8,60000000000000E+001 jetzt will ich mit PHP ein 86 daraus machen. Wie kann ich das anstellen. Ich will genrell die Exponenten weg haben und normale Zahlen mit Komma haben...Bist du sicher, dass da in Komma als Dezimaltrennzeichen steht? Dann musst du das erstmal mit Stringersetzung zu einem Punkt machen. Dann kannst du mit Typecast zu float oder der Funktion floatval() einen ordentlichen Zahlentyp draus machen, den du anschließend auch nach int typcasten oder mit intval() behandeln kannst.
Dazu gibt es auch Lösungsvorschläge in den UCN des PHP Manual
http://www.php.net/manual/de/function.number-format.php#83740
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg