У меня есть текстовое поле, в котором будет строка валюты , и мне нужно затем преобразовать эту строку в двойную, чтобы выполнить некоторые операции с ней.
"$1,100.00"
→ 1100.00
Это должно произойти на стороне клиента. У меня нет выбора, кроме как оставить строку валюты в качестве строки валюты в качестве входных данных, но мне нужно преобразовать / преобразовать ее в double, чтобы разрешить некоторые математические операции.
javascript
jquery
Бобби Борщич
источник
источник
.00
трейлинг. В противном случае действительные представления валюты, такие как «$ 1100» и «$ 1100». будет уменьшен на два порядка.accounting.js - это путь. Я использовал его в проекте и имел очень хороший опыт его использования.
Вы можете найти его на GitHub
источник
Используйте регулярное выражение, чтобы удалить форматирование (доллар и запятую), и используйте parseFloat, чтобы преобразовать строку в число с плавающей точкой.
источник
Я знаю, что это старый вопрос, но хотел дать дополнительную опцию.
JQuery Globalize дает возможность анализировать формат, специфичный для культуры, с плавающей точкой.
https://github.com/jquery/globalize
Учитывая строку "$ 13 042,00", и Globalize установлен в en-US:
Вы можете разобрать значение с плавающей точкой следующим образом:
Это даст вам:
И позволяет работать с другими культурами.
источник
Я знаю, что это старый вопрос, но в ответе CMS есть один маленький недостаток: он работает только в том случае, если в формате валюты используется «». в качестве десятичного разделителя. Например, если вам нужно работать с российскими рублями, строка будет выглядеть так: «1 000,00 руб.»
Мое решение гораздо менее элегантно, чем CMS, но оно должно сработать.
Предположения:
Регулярное выражение может даже обрабатывать что-то вроде «1 999 долларов и 99 центов», хотя это не предназначенная функция, и на нее не следует полагаться.
Надеюсь, это кому-нибудь поможет.
источник
Этот пример работает нормально
http://jsbin.com/ecAviVOV/2/edit
источник
// "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/
источник
Я знаю, что вы нашли решение своего вопроса, я просто хотел бы порекомендовать вам посмотреть на следующий более обширный плагин jQuery для международных форматов номеров:
Международный форматировщик чисел
источник
Это моя функция. Работает со всеми валютами ..
Использование:
toFloat("$1,100.00")
илиtoFloat("1,100.00$")
источник
Вы можете попробовать это
источник
выход: рупий 39,00
источник
Я проверил выше трех символов валюты. Вы можете сделать это и для других.
Выше регулярного выражения удалит все, что не является цифрой или точкой. Так что Вы можете получить строку без символа валюты, но в случае «Fr. 150.00», если вы утешаете вывод, вы получите цену как
что неправильно, поэтому вы проверяете индекс "." затем разделите это и получите правильный результат.
источник
источник
источник
Эта функция должна работать независимо от локали и настроек валюты:
Предполагается, что вы знаете символ десятичной точки (в моем случае локаль устанавливается из PHP, поэтому я получаю его с помощью
<?php echo cms_function_to_get_decimal_point(); ?>
).источник
Это сработало для меня и охватывает большинство крайних случаев :)
источник