Читать строку PHP как целое число

Это может показаться элементарным вопросом, и я уверен, что на него уже есть ответ. Но, поскольку я не могу найти ответ, надеюсь, кто-то может помочь.

У меня есть переменная: $_POST['totalrevenue'], которая была передана со страницы PHP (home.php) через ajax на другую страницу PHP (ajax.php).

Значение 2900 и должно читаться как целое число, но читается как строка в ajax.php.

Делает

settype($_POST['totalrevenue'], int) 

преобразует строку в целое число с новым значением 2.

Как лучше всего преобразовать эту строку в целое число, сохранив исходное значение (2900) в PHP?

php.net/manual/en/function.floatval.php
Cagy79 31.05.2018 00:45
"2,900" можно интерпретировать как 2900 или 2.9, в зависимости от настроек вашей локали. Я бы посоветовал вам просто не принимать символы, отличные от цифр, и [необязательно] независимо от того, каким является представление десятичной дроби в текущей локали.
Sammitch 31.05.2018 00:48
Стоит ли изучать 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 и хотите разрабатывать...
2
2
56
2

Ответы 2

Ваша проблема в том, что «2,900» - это нет число - это строка. Эта запятая разрушает всю магию.

Преобразуйте запятую в точку, и теперь (float) и floatval () или intval () обработают ее правильно:

$value = (float)str_replace(',', '.', $oldValue);

Или, если ',' является разделителем тысяч (я тоже не могу этого сказать), замените его пустой строкой. «2,900» превращается в 2900, и это все, что вам нужно:

$value = (int)str_replace(',', '', $oldValue);

(Перечитывая свой вопрос, вы попадаете во второй сценарий. Вышесказанное по-прежнему верно для строк с плавающей запятой).

кричит внутренне из-за того, что не осознает ошибки спасибо. +1 это сработало.
Liam 31.05.2018 00:53

Если это может уменьшить боль, я делаю эту ошибку более или менее каждый раз Я импортирую или экспортирую что-то из файла Microsoft Excel. Обычно до ошибок UTF8 и почти всегда до ошибок округления :-)

LSerni 31.05.2018 01:01

Попробуйте использовать (int) или (float) для приведения типа перед переменной.

$var = (int)str_replace(',', '.', $prevVar); /* for float */

а также

$var = (float)str_replace(',', '.', $prevVar); /* for int */

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