Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann man monetäre Werte aus Zeichenfolgen an verschiedenen Orten genau analysieren?
Genaue Formatierung von Geldwerten an verschiedenen Orten
Der Umgang mit Geldwerten erfordert oft die Konvertierung von Zeichenfolgen, die Geldbeträge darstellen, in numerische Mengen. In PHP kann dazu die Funktion parsefloat() genutzt werden. Wenn es jedoch um Werte geht, die je nach Gebietsschema variieren können, kann das Dezimaltrennzeichen unterschiedlich sein. Dies stellt eine Herausforderung für den unkomplizierten parsefloat(str_replace(',', '.', $var))-Ansatz dar.
Eine umfassende Lösung
Zur Adressierung dieses Gebietsschemas -abhängigen Problems, ziehen Sie die folgende Lösung in Betracht, die effektiv den Gleitkommawert extrahiert und dabei verschiedene Dezimaltrennzeichen und Tausender berücksichtigt Trennzeichen:
public function getAmount($money) { $cleanString = preg_replace('/([^0-9\.,])/i', '', $money); // Remove non-numeric characters $onlyNumbersString = preg_replace('/([^0-9])/i', '', $money); // Extract only numbers $separatorsCountToBeErased = strlen($cleanString) - strlen($onlyNumbersString) - 1; // Determine extra separators $stringWithCommaOrDot = preg_replace('/([,\.])/i', '', $cleanString, $separatorsCountToBeErased); // Replace separators $removedThousandSeparator = preg_replace('/(\.|,)(?=[0-9]{3,}$)/i', '', $stringWithCommaOrDot); // Remove excess thousand separators return (float) str_replace(',', '.', $removedThousandSeparator); // Convert to float with dot as decimal separator }
Vorteile und Vorbehalte
Diese Lösung bietet eine zuverlässige Möglichkeit, Float-Werte aus Geldzeichenfolgen an verschiedenen Orten zu extrahieren. Umfangreiche Tests haben seine Genauigkeit für eine Vielzahl von Szenarien bestätigt, einschließlich Werten mit Kommas oder Punkten als Dezimaltrennzeichen und Tausendertrennzeichen.
Der Vorbehalt liegt jedoch in seinem potenziellen Ausfall bei der Verarbeitung von Dezimalteilen, die mehr als zwei Ziffern umfassen. Um diese Einschränkung zu beheben, ändern Sie das reguläre Ausdrucksmuster im Code entsprechend.
Praktische Implementierung
Die Lösung wird in der Bibliothek unter https://github.com bereitgestellt /mcuadros/currency-detector, das auf die Identifizierung und Verarbeitung von Geldwerten basierend auf gebietsschemaspezifischen Einstellungen spezialisiert ist.
Das obige ist der detaillierte Inhalt vonWie kann man monetäre Werte aus Zeichenfolgen an verschiedenen Orten genau analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!