Floatval: примеры (PHP)
floatval(mixed $value): floatФункция floatval является встроенной в PHP и используется для получения float-значения переменной. Она выполняет преобразование переданного аргумента к числу с плавающей точкой.
Функция часто применяется при обработке пользовательского ввода, чтении данных из строк или преобразовании значений перед математическими операциями.
Синтаксис функции: floatval(mixed $value)
Функция принимает один обязательный параметр:
- $value - переменная, которую необходимо преобразовать в число с плавающей точкой. Может быть строкой, целым числом, булевым значением или другим типом.
Возвращаемое значение: число типа float. Если преобразование невозможно, функция возвращает 0.0.
echo floatval('123.45');123.45
echo floatval('+123.45e2');12345
echo floatval(42);42
echo floatval('10кг');10
echo floatval('кг10');0
Функция intval преобразует значение в целое число. Принимает дополнительный параметр для указания системы счисления. Отличается от floatval типом возвращаемого значения.
Функция settype изменяет тип переменной. Может преобразовывать к разным типам, включая 'float'. Работает непосредственно с переданной переменной, изменяя её.
Функция filter_var с фильтром FILTER_VALIDATE_FLOAT проверяет, является ли значение float, и возвращает его. FILTER_SANITIZE_NUMBER_FLOAT удаляет все символы, кроме цифр, знаков и указанных символов.
Использование арифметических операций: $float = $value + 0.0; работает аналогично для числовых строк, но менее предсказуемо для других типов.
Floatval в Python
Функция float() преобразует значение в число с плавающей точкой. Более строгая, вызывает исключение при ошибке.
print(float('123.45'))123.45
Floatval в Javascript
Функция parseFloat() анализирует строку и возвращает число с плавающей точкой. Останавливается на первом нечисловом символе.
console.log(parseFloat('123.45abc'));123.45
Floatval в MySQL
Функции CAST() и CONVERT() могут преобразовывать значения в DECIMAL или FLOAT. Используются в SQL-запросах.
SELECT CAST('123.45' AS DECIMAL(10,2));123.45
Метод float.Parse() и float.TryParse() для преобразования строк. Второй метод безопаснее, так как не выбрасывает исключение.
float.TryParse("123.45", out float result);При преобразовании очень больших чисел или чисел с высокой точностью может происходить потеря данных.
echo floatval('12345678901234567890');1.2345678901235E+19
Функция не учитывает локаль, поэтому строки с запятой как разделителем дробной части обрабатываются некорректно.
echo floatval('123,45');123
Функция может неожиданно обработать строку с несколькими точками или знаками.
echo floatval('12.34.56');12.34
При передаче массива или объекта функция возвращает 0.0 без предупреждения.
echo floatval([1, 2, 3]);0
В PHP 8.0 были ужесточены правила приведения типов. Некоторые неявные преобразования теперь вызывают предупреждения, но floatval продолжает работать в прежнем режиме.
В PHP 8.1 добавлена поддержка явного указания типа float в объявлениях, что делает использование floatval менее необходимым в некоторых сценариях.
Начиная с PHP 7.0, функция более строго обрабатывает строки, содержащие нечисловые символы в начале, возвращая 0.0 вместо частичного преобразования.
Использование floatval для безопасного получения числовых значений из форм.
$user_input = '15.75кг';
$weight = floatval($user_input);
echo $weight;15.75
Функция корректно обрабатывает числа в экспоненциальной записи.
echo floatval('1.23e-4');0.000123
Логические значения преобразуются в 1.0 или 0.0.
echo floatval(true) . ', ' . floatval(false);1, 0
Значение NULL преобразуется в 0.0.
echo floatval(null);0
Использование floatval вместе с number_format для форматирования вывода.
$value = floatval('1234.5678');
echo number_format($value, 2, ',', ' ');1 234,57
Строки с шестнадцатеричными числами не преобразуются корректно.
echo floatval('0xFF');0
Важно учитывать особенности сравнения чисел с плавающей точкой после преобразования.
$a = floatval('0.1');
$b = floatval('0.2');
$c = floatval('0.3');
var_dump(($a + $b) == $c);bool(false)