Ich bin mit PHP überhaupt nicht vertraut und hatte eine kurze Frage.
Ich habe 2 Variablen pricePerUnit
und InvoicedUnits
. Hier ist der Code, der diese auf Werte setzt:
$InvoicedUnits = ((string) $InvoiceLineItem->InvoicedUnits);
$pricePerUnit = ((string) $InvoiceLineItem->PricePerUnit);
Wenn ich dies ausgebe, erhalte ich die richtigen Werte. Sagen wir in 5000
Rechnung gestellte Einheiten und 1.00
für den Preis.
Jetzt muss ich den Gesamtbetrag anzeigen. Wenn ich diese beiden miteinander multipliziere, funktioniert es nicht (wie erwartet sind dies Zeichenfolgen).
Aber ich habe keine Ahnung, wie man Variablen in PHP analysiert / umwandelt / konvertiert.
Was soll ich machen?
VARCHAR>11
in der Länge. Ich habe noch nicht genau eingegrenzt , warum.Sie möchten die nicht Gebietsschema-fähige
floatval
Funktion :Beispiel:
quelle
(float)
, die auf dem ersten Server zu "," und auf dem zweiten zu "," konvertiertenWenn der Benutzer 1,00,000 schreibt, zeigt floatvar einen Fehler an. So -
Das ist viel zuverlässiger.
Verwendung :
quelle
$string=preg_replace("/[^0-9\.\-]/","",$string);
Der Umgang mit Markups in Floats ist keine triviale Aufgabe. In der englischen / amerikanischen Notation formatieren Sie mehr als tausend
46*10-2
:Aber in Deutschland würden Sie Komma und Punkt ändern:
Dies macht es wirklich schwierig, die richtige Anzahl in mehrsprachigen Anwendungen zu erraten.
Ich empfehle dringend,
Zend_Measure
das Zend Framework für diese Aufgabe zu verwenden. Diese Komponente analysiert die Zeichenfolge in einem Gleitkommawert der Benutzersprache.quelle
intl
Erweiterung verwenden.Verwenden Sie diese Funktion, um einen Gleitkommawert aus einem beliebigen Textstil umzuwandeln:
Diese Lösung ist nicht von Gebietsschemaeinstellungen abhängig. Somit können Benutzer für Benutzereingaben Float-Werte nach Belieben eingeben. Dies ist sehr hilfreich, z. B. wenn Sie ein Projekt haben, das nur auf Englisch ist, aber von Menschen auf der ganzen Welt verwendet wird und möglicherweise nicht daran denkt, dass das Projekt einen Punkt anstelle eines Kommas für Gleitkommawerte wünscht. Sie könnten Javascript in den Mix werfen und die Standardeinstellungen des Browsers abrufen, aber immer noch setzen viele Leute diese Werte auf Englisch, geben aber immer noch 1,25 statt 1,25 ein (insbesondere, aber nicht beschränkt auf die Übersetzungsbranche, Forschung und IT).
quelle
Ich hatte ein Problem mit der Standardmethode:
Wenn es keine gültige Nummer gibt, sollte der Parser keine Nummer zurückgeben, sondern einen Fehler auslösen. (Dies ist eine Bedingung, die ich in meinem Code YMMV zu erfassen versuche.)
Um dies zu beheben, habe ich Folgendes getan:
Bevor ich die Konvertierung weiter verarbeite, kann ich einen Fehler überprüfen und zurückgeben, wenn keine gültige Analyse der Zeichenfolge vorhanden ist.
quelle
Wenn Sie Werte verarbeiten müssen, die nicht separat konvertiert werden können, können Sie folgende Methode verwenden:
quelle
Sie können diesem Link folgen , um mehr darüber zu erfahren, wie Sie eine Zeichenfolge / Zahl in PHP in Zahl / Gleitkomma / Dezimalzahl konvertieren. HIER IST, WAS DIESER LINK SAGT ...
Methode 1: Verwenden der Funktion number_format (). Mit der Funktion number_format () wird eine Zeichenfolge in eine Zahl konvertiert. Bei Erfolg wird die formatierte Zahl zurückgegeben, andernfalls wird bei Fehlschlag E_WARNING ausgegeben.
Methode 2: Verwenden von Typumwandlung: Typecasting kann eine Zeichenfolge direkt in einen float-, double- oder integer-Primitivtyp konvertieren. Dies ist der beste Weg, um eine Zeichenfolge ohne Funktion in eine Zahl umzuwandeln.
Methode 3: Verwenden der Funktionen intval () und floatval (). Die Funktionen intval () und floatval () können auch verwendet werden, um den String in seine entsprechenden Integer- bzw. Float-Werte zu konvertieren.
Methode 4: Durch Hinzufügen von 0 oder durch Ausführen mathematischer Operationen. Die Zeichenfolgennummer kann auch in eine Ganzzahl oder ein Gleitkommawert umgewandelt werden, indem der Zeichenfolge 0 hinzugefügt wird. In PHP wird bei der Ausführung mathematischer Operationen die Zeichenfolge implizit in eine Ganzzahl oder einen Gleitkommawert konvertiert.
quelle