Ich habe ein Textfeld mit einer Währungszeichenfolge , die ich dann in eine doppelte Zeichenfolge konvertieren muss, um einige Operationen daran auszuführen.
"$1,100.00"
→ 1100.00
Dies muss auf der gesamten Clientseite erfolgen. Ich habe keine andere Wahl, als die Währungszeichenfolge als Währungszeichenfolge als Eingabe zu belassen, muss sie jedoch in ein Double umwandeln, um einige mathematische Operationen zu ermöglichen.
javascript
jquery
Bobby Borszich
quelle
quelle
.00
Trailing gibt. Ansonsten gültige Währungsangaben wie "$ 1100" und "$ 1100". wird um zwei Größenordnungen reduziert.Buchhaltung.js ist der richtige Weg. Ich habe es bei einem Projekt verwendet und hatte sehr gute Erfahrungen damit.
Sie finden es bei GitHub
quelle
Verwenden Sie einen regulären Ausdruck, um die Formatierung (Dollar und Komma) zu entfernen, und verwenden Sie parseFloat, um die Zeichenfolge in eine Gleitkommazahl zu konvertieren. "
quelle
Ich weiß, dass dies eine alte Frage ist, wollte aber eine zusätzliche Option geben.
Mit jQuery Globalize können Sie ein kulturspezifisches Format in einem Float analysieren.
https://github.com/jquery/globalize
Bei einer Zeichenfolge "$ 13.042,00" und Globalize auf en-US gesetzt:
Sie können den Float-Wert folgendermaßen analysieren:
Dies wird Ihnen geben:
Und ermöglicht es Ihnen, mit anderen Kulturen zu arbeiten.
quelle
Ich weiß, dass dies eine alte Frage ist, aber die Antwort von CMS scheint einen winzigen kleinen Fehler zu haben: Sie funktioniert nur, wenn das Währungsformat "" verwendet. als Dezimaltrennzeichen. Wenn Sie beispielsweise mit russischen Rubeln arbeiten müssen, sieht die Zeichenfolge folgendermaßen aus: "1 000,00 rub."
Meine Lösung ist weit weniger elegant als die von CMS, sollte aber den Trick machen.
Annahmen:
Der reguläre Ausdruck kann sogar mit so etwas wie "1.999 Dollar und 99 Cent" umgehen, obwohl dies keine beabsichtigte Funktion ist und man sich nicht darauf verlassen sollte.
Hoffe das wird jemandem helfen.
quelle
Dieses Beispiel läuft in Ordnung
http://jsbin.com/ecAviVOV/2/edit
quelle
// "10.000.500,61 TL" price_to_number => 10000500.61
// "10000500.62" number_to_price => 10.000.500,62
JS FIDDLE: https://jsfiddle.net/Limitlessisa/oxhgd32c/
quelle
Ich weiß, dass Sie eine Lösung für Ihre Frage gefunden haben. Ich wollte Ihnen nur empfehlen, sich das folgende umfangreichere jQuery-Plugin für internationale Zahlenformate anzusehen:
Internationaler Zahlenformatierer
quelle
Das ist meine Funktion. Funktioniert mit allen Währungen ..
Verwendung:
toFloat("$1,100.00")
odertoFloat("1,100.00$")
quelle
Sie können dies versuchen
quelle
Ausgabe ist: Rs. 39.00
quelle
Ich habe auf über drei Währungssymbole getestet. Sie können dies auch für andere tun.
Über dem regulären Ausdruck wird alles entfernt, was keine Ziffer oder ein Punkt ist. Sie können die Zeichenfolge ohne Währungssymbol erhalten, aber im Fall von "Fr. 150.00", wenn Sie für die Ausgabe trösten, erhalten Sie den Preis als
Das ist falsch, also überprüfen Sie den Index von "." Teilen Sie das dann auf und erhalten Sie das richtige Ergebnis.
quelle
quelle
quelle
Diese Funktion sollte unabhängig von den Einstellungen für Gebietsschema und Währung funktionieren:
Dies setzt voraus, dass Sie das Dezimalzeichen kennen (in meinem Fall wird das Gebietsschema über PHP festgelegt, also verstehe ich es mit
<?php echo cms_function_to_get_decimal_point(); ?>
).quelle
Dies hat bei mir funktioniert und deckt die meisten Randfälle ab :)
quelle