Ich möchte diese Arten von Werten konvertieren, '3'
, '2.34'
, '0.234343'
usw. zu einer Zahl. In JavaScript können wir verwenden Number()
aber gibt es eine ähnliche Methode in PHP?
Input Output
'2' 2
'2.34' 2.34
'0.3454545' 0.3454545
99 Stimmen
Leser aufgepasst: Es gibt keine wirkliche Antwort auf diese Frage :(
1 Stimmen
@MatthieuNapoli Die Antwort ist, dass Php es normalerweise für Sie herausfindet - einer der Vorteile eines dynamischen Typsystems.
18 Stimmen
Mit all den Ketten der Ungewissheit und dem "normalerweise".
0 Stimmen
Ich glaube, was ich vor 5 Jahren meinte, ist, dass es keine eine einzige Funktion das die Zeichenkette nimmt und eine richtige
int
ofloat
(Sie wollen normalerweise keinefloat
wenn einint
gegeben ist).4 Stimmen
@MatthieuNapoli Ich bin froh, dass Sie Ihre Aussage dahingehend präzisiert haben, dass es mehr als einen Weg gibt, eine Katze zu häuten, und nicht, dass es keinen Weg gibt, dies zu tun. Casting ist zum Beispiel bei Datenbankoperationen sehr wichtig. Bei einer parametrisierten PDO-Abfrage hat der Parser manchmal Mühe zu erkennen, dass es sich um eine Zahl und nicht um eine Zeichenkette handelt, und dann haben Sie am Ende eine 0 in einem Integer-Feld, weil Sie die Zeichenkette im Parameterschritt nicht in eine int-Zahl umgewandelt haben.
0 Stimmen
Übrigens, in JavaScript ist die literale Ganzzahl
2
wird intern gespeichert als Nummer : "Ein Zahlenliteral wie 37 in JavaScript-Code ist ein Fließkommazahl, keine ganze Zahl . Es gibt keinen separaten Integer-Typ im alltäglichen Gebrauch. (JavaScript hat jetzt einen BigInt-Typ, aber er wurde nicht entwickelt, um Number für den täglichen Gebrauch zu ersetzen. 37 ist immer noch eine Number, keine BigInt.)" Der einzige Grund alsoNumber(your_string)
tut, was Sie in JS wollen, ist die Logik anderswo, die standardmäßig zur Anzeige2
als"2"
statt"2.0"
.