Floatval: примеры (PHP)

PHP функция floatval: полное руководство с примерами использования
Раздел: Преобразование типов/форматов
floatval(mixed $value): float
Описание функции floatval

Функция 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
Похожие функции в PHP

Функция intval преобразует значение в целое число. Принимает дополнительный параметр для указания системы счисления. Отличается от floatval типом возвращаемого значения.

settype()

Функция 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
C#

Метод 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

В PHP 8.0 были ужесточены правила приведения типов. Некоторые неявные преобразования теперь вызывают предупреждения, но floatval продолжает работать в прежнем режиме.

В PHP 8.1 добавлена поддержка явного указания типа float в объявлениях, что делает использование floatval менее необходимым в некоторых сценариях.

Начиная с PHP 7.0, функция более строго обрабатывает строки, содержащие нечисловые символы в начале, возвращая 0.0 вместо частичного преобразования.

Расширенные примеры
Обработка пользовательского ввода

Использование floatval для безопасного получения числовых значений из форм.

Пример php
$user_input = '15.75кг';
$weight = floatval($user_input);
echo $weight;
15.75
Работа с научной нотацией

Функция корректно обрабатывает числа в экспоненциальной записи.

Пример php
echo floatval('1.23e-4');
0.000123
Преобразование булевых значений

Логические значения преобразуются в 1.0 или 0.0.

Пример php
echo floatval(true) . ', ' . floatval(false);
1, 0
Обработка NULL

Значение NULL преобразуется в 0.0.

Пример php
echo floatval(null);
0
Комбинирование с другими функциями

Использование floatval вместе с number_format для форматирования вывода.

Пример php
$value = floatval('1234.5678');
echo number_format($value, 2, ',', ' ');
1 234,57
Преобразование шестнадцатеричных чисел

Строки с шестнадцатеричными числами не преобразуются корректно.

Пример php
echo floatval('0xFF');
0
Сравнение преобразованных значений

Важно учитывать особенности сравнения чисел с плавающей точкой после преобразования.

Пример php
$a = floatval('0.1');
$b = floatval('0.2');
$c = floatval('0.3');
var_dump(($a + $b) == $c);
bool(false)

PHP floatval function comments

En
Floatval Get float value of a variable