Как очистить денежную ценность и вернуть ее в целое число

Есть ли хороший способ сократить денежные ценности с долларов, евро, швейцарских франков и так далее.

У меня есть денежные ценности, содержащие денежные знаки, которые мне не нужны, поэтому есть ли функция php или что-то, что удаляет эти вещи (все денежные знаки мира)

Текущие значения

#current      -> #stripped value(what im looking for)
€ 2.66        -> 2.66
445.77 €      -> 445.77
$ 4561.44     -> 4561.44
CHF 3`009.55  -> 3`009.55

Обновлено:

Я нашел шаблон регулярного выражения, но он удалит знак `sign to.

/[^0-9,.`]/

Нет, для чего-то такого особенного не существует специальной функции. Вам придется написать его самому. Я, вероятно, выбрал бы регулярное выражение и сопоставил бы только те части, которые вам нужны (цифры, десятичная точка, `)

misorude 09.01.2019 12:47

Дерьмовый способ - вы могли бы сами создать функцию, которая удаляет каждый символ из строки, возвращает целые числа, запятые и десятичные дроби и возвращает все, что возвращается в виде числа с плавающей запятой.

user5283119 09.01.2019 12:47

Найдите библиотеку, которая справится с этим за вас, например: github.com/moneyphp/money. Я настоятельно рекомендую нет попробовать свои силы с нуля, деньги очень быстро усложняются, и вы действительно не хотите ошибиться.

MLeFevre 09.01.2019 12:47

Угадайте, что 2561.44 - опечатка?

DarkBee 09.01.2019 12:49

Зависит от того, соответствуют ли строки вашей валюты формату, распознаваемому NumberFormatter :: parseCurrency ...

CD001 09.01.2019 12:51

Честно говоря, если ваша область действия не очень ограничена, не пытайтесь сделать это самостоятельно с помощью Regex. В Великобритании перед денежным эквивалентом ставится соответствующий знак валюты, в других местах - суффикс. В Великобритании мы используем запятую в качестве разделителя тысяч, в других местах запятая используется для разделения десятичных знаков, в то время как десятичная точка используется для разделения тысяч, в других местах используется пробел. Как вы собираетесь хранить эти значения, может быть поплавок? О боже. А как насчет налоговых ставок? Что вы имеете в виду, что у японцев нет десятичных значений? .... Найдите хорошую библиотеку.

MLeFevre 09.01.2019 12:58

Разве вы не можете просто добавить обратную кавычку к этому регулярному выражению? / [^0-9,.`] /

Ben Hillier 09.01.2019 12:58

Я пробовал этот шаблон, но он удалит обратную кавычку

user759235 09.01.2019 12:59

Вы хотите сопоставить /([0-9,.` sizes+)/, потому что ^ в начале класса символов отрицает его, что означает все, кроме этих символов

misorude 09.01.2019 13:05

Чтобы сделать ситуацию еще более запутанной, вы также можете добавить префикс к валюте, чтобы сделать ее тысячами или миллионами и т. д., Например, когда вы смотрите отчеты о бизнесе. Например, 100 tkr означает 100 000 kr, если вы просто удалите tkr, ваши данные недействительны.

Andreas 09.01.2019 14:12

И ваш вопрос не имеет смысла, поскольку вы хотите вернуть целое число, но хотите оставить ` в качестве возврата. Это недопустимое целое число.

Andreas 09.01.2019 14:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
11
76
2

Ответы 2

$str = '445.77 € ';
preg_match_all('!\d+!', $str, $value);
print_r($value[0][0].'.'.$value[0][1]);

Это упадет с японской иеной.

CD001 09.01.2019 12:55

Попробуй это

$test = 'CHF 3`009.55';
preg_replace('/[^0-9-.`]+/', '', $test); //return 3`009.55

@ user759235 уверен, что это так. Это не целое число, но это то, что вы ожидаете 3v4l.org/E9XZv

Andreas 09.01.2019 14:17

Другие вопросы по теме