| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

18-06-2011, 09:19
|
|
kalleplom
Registrierter Benutzer
|
|
Registriert seit: Jun 2005
Beiträge: 141
|
|
Verwirrung beim Konvertieren von String zu Float - var_dump: float(NAN)
Hallo!
Entweder ist das seltsam, oder ich bin es...
Code:
$sValue = "0.44";
var_dump((float)$sValue); // float(NAN)
var_dump((float)$sValue); // float(0.44)
Ich quäle mich schon seit ner Stunde mit 'ner Summenberechnung rum, und während ich das hier poste und ein Beispiel schreibe fällt mir auf, dass der 2. Aufruf anderes liefert als der erste...? (Browserausgabe)
Kann mir das jemand erklären?
System: Win7 64, Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1
__________________
fragen macht spass, denken nicht
|

18-06-2011, 12:58
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Hallo,
was passiert zwischendurch mit dem Wert oder ist das schon der gesamte Code, der dieses Verhalten verursacht? Warum versuchst du, mit Strings zu rechnen? Konvertiere den Wert einmal in einen numerischen und arbeite mit dem weiter.
Gruß,
Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

18-06-2011, 13:34
|
|
kalleplom
Registrierter Benutzer
|
|
Registriert seit: Jun 2005
Beiträge: 141
|
|
ja, das ist tatsächlich schon der ganze Code. Wenn ich einen neuen Wert, bzw. ne Anweisung vorsetze, dann stimmt die Ausgabe auch wieder.
Ich habe hier mit dem String gerechnet, weil die Werte ursprünglich aus der Datenbank kommen. Als String.
Und beim Konvertieren zu float ist mir das aufgefallen. Der Seitenaufruf kam nach einem Post.
Da das jetzt aber nicht mehr nachvollziehbar ist, da ich den Browser zwischzeitlich geschlossen hatte... muss ich mich wohl weiter wundern was es war ..
danke trotzdem!
__________________
fragen macht spass, denken nicht
|

18-06-2011, 13:39
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Zitat:
Zitat von kalleplom
weil die Werte ursprünglich aus der Datenbank kommen. Als String
|
*hust*
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

18-06-2011, 13:53
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
@AmicaNoctis
Die MySQL-Extension von PHP liefert Zahlenwerte tatsächlich als String. Dies hat damit zu tun, dass PHP nicht die selben Datentypen wie MySQL hat. zB. ist ein 32-bit unsigned Integer in einem (32-bit) PHP nicht abspeicherbar. Ähnlich ist es bei Dezimalzahlen, diese unterstützt PHP überhaupt nicht (Float ist kein richtiger Dezimalzahldatentyp). Der einzige Umweg führt über einen String.
|

18-06-2011, 16:45
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Ja, ich merk grad ich war auf nem falschen Dampfer. Ich dachte, die Werte sind als String in der DB drin.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt? 
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke! 
|

20-06-2011, 15:28
|
 |
ApoY2k
Registrierter Benutzer
|
|
Registriert seit: Nov 2006
Beiträge: 290
|
|
Ich erhalte bei beiden Aufrufen float(0.44) als Ergebnis.
Apache/2.2.12 (Win32) DAV/2 mod_ssl/2.2.12 OpenSSL/0.9.8k mod_autoindex_color PHP/5.3.0 mod_perl/2.0.4 Perl/v5.10.0
__________________
This is what happens when an unstoppable force meets an immovable object.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|