J'ai une zone de texte qui contiendra une chaîne monétaire que je dois ensuite convertir cette chaîne en double pour effectuer certaines opérations dessus.
"$1,100.00"
→ 1100.00
Cela doit se produire du côté client. Je n'ai pas d'autre choix que de laisser la chaîne de devise en tant que chaîne de devise en entrée, mais je dois la convertir / la convertir en double pour permettre certaines opérations mathématiques.
javascript
jquery
Bobby Borszich
la source
la source
.00
fuite. Sinon, des représentations valides de devises telles que "1100 $" et "1100 $". sera réduite de deux ordres de grandeur.accounting.js est la voie à suivre. Je l'ai utilisé lors d'un projet et j'ai eu une très bonne expérience de son utilisation.
Vous pouvez le trouver sur GitHub
la source
Utilisez une expression régulière pour supprimer le formatage (dollar et virgule) et utilisez parseFloat pour convertir la chaîne en nombre à virgule flottante. »
la source
Je sais que c'est une vieille question mais je voulais donner une option supplémentaire.
Le jQuery Globalize donne la possibilité d'analyser un format spécifique à une culture à un flottant.
https://github.com/jquery/globalize
Étant donné une chaîne "$ 13,042.00", et Globalize défini sur en-US:
Vous pouvez analyser la valeur flottante comme suit:
Cela vous donnera:
Et vous permet de travailler avec d'autres cultures.
la source
Je sais que c'est une vieille question, mais la réponse de CMS semble avoir un tout petit défaut: cela ne fonctionne que si le format monétaire utilise "." comme séparateur décimal. Par exemple, si vous devez travailler avec des roubles russes, la chaîne ressemblera à ceci: "1 000,00 rub."
Ma solution est beaucoup moins élégante que celle de CMS, mais elle devrait faire l'affaire.
Hypothèses:
L'expression régulière peut même gérer quelque chose comme "1 999 dollars et 99 cents", bien que ce ne soit pas une fonctionnalité prévue et qu'il ne faut pas s'y fier.
J'espère que cela aidera quelqu'un.
la source
Cet exemple fonctionne bien
http://jsbin.com/ecAviVOV/2/edit
la source
// "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/
la source
Je sais que vous avez trouvé une solution à votre question, je voulais juste recommander que vous examiniez peut-être le plugin jQuery plus étendu suivant pour les formats de nombres internationaux:
Formateur de numéro international
la source
C'est ma fonction. Fonctionne avec toutes les devises ..
Utilisation:
toFloat("$1,100.00")
outoFloat("1,100.00$")
la source
Vous pouvez essayer ceci
la source
la sortie est: Rs. 39,00
la source
J'ai testé plus de trois symboles monétaires. Vous pouvez également le faire pour d'autres.
L'expression régulière ci-dessus supprimera tout ce qui n'est pas un chiffre ou un point. Vous pouvez donc obtenir la chaîne sans symbole monétaire, mais en cas de "Fr. 150,00" si vous consolez pour la sortie, vous obtiendrez le prix comme
ce qui est faux donc vous vérifiez l'index de "." puis divisez cela et obtenez le bon résultat.
la source
la source
la source
Cette fonction devrait fonctionner quels que soient les paramètres régionaux et monétaires:
Cela suppose que vous connaissez le caractère décimal (dans mon cas, la locale est définie à partir de PHP, donc je l'obtiens
<?php echo cms_function_to_get_decimal_point(); ?>
).la source
Cela a fonctionné pour moi et couvre la plupart des cas marginaux :)
la source