Intereting Posts
Какую из этих двух настроек базы данных я должен выбрать? Как отправить эту форму с помощью AJAX без jQuery, но чистый Javascript Объектно-ориентированные рекомендации PHP Получить все строки на основе запроса в массив Добавить стиль для эха Синхронизация базы данных Online / Offline – MySQL / PHP Как отправить сообщение POST в Facebook через Graph API с помощью PHP warning: stream_socket_client (): невозможно установить файл закрытого ключа Неопределенная ошибка индекса при отправке переменной из jquery в php Как включить файл php.ini в другой файл php.ini? Предупреждения 'xmlParseEntityRef: no name' при загрузке xml в файл php Как получить .htaccess для перенаправления из поддомена подстановочной страницы в папку поддомена подстановочных знаков Сохранение изображения на db mysql через swift Печать многомерного массива с использованием одного цикла Foreach Почему .htaccess перенаправляет URL-адрес маршрутизации, но разрывает ссылки css / js / image после двух уровней в глубину?

Принятие международных чисел с десятичным разделителем и разделителем тысяч в PHP

Для онлайн-калькулятора, где пользователи могут ввести сумму энергии для расчета соответствующих сборов, мне нужен PHP-скрипт для приема различных пользовательских входов. Значение «2 миллиона и одна четвертая джоуль» может быть введено как:

2000000.25 (стандартная нотация)

2 000 000,25 (с разделителем тысяч)

2000000,25 (запятая в виде десятичной точки)

2.000.000,25 (запятая в виде десятичной точки, с разделителем тысяч)

2'000'000.25 (альтернативный формат)

2 000 000,25 (французская нотация)

Как я мог сделать сценарий осведомленным о таких различиях?

Моя первая попытка состояла в том, чтобы просто str_replace альтернативные символы по умолчанию, но период (.) Может быть десятичным или тысячным разделителем. Я пытался использовать sscanf, но как я могу убедиться, что он правильно читает номер?

Большинство пользователей будут указывать только две цифры после десятичной точки, но есть ли способ отличить 1.234 (1 балл 234, период как десятичный разделитель) и 1.234 (одна тысяча двести тридцать четыре, период как разделитель тысяч)?