Базовый курс PHP — Переменные с дробным типом (float)

  • Начинающий
  • 25 мин
  • 8 примеров
  • 4 задания
  • 21.10.2026
  • 1

Что значит переменные с типом данных float?

Переменные с типом данных float предназначены для хранения дробных (вещественных) чисел, например: 3.14, -0.5, 99.99, 0.001

Такой тип данных может содержать числа с десятичной точкой (положительные, отрицательные и ноль).
Дробные числа обозначаются типом данных float (также называется double).

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

Рассмотрим пример с выводом дробных чисел на экран.

Пример кода PHP #1
<?php

// Присвоим переменным дробные значения
$price = 19.99;
$temperature = -3.5;
$pi = 3.14159;
$zero = 0.0;

// Выведем значения переменных на экран
echo $price . PHP_EOL;
echo $temperature . PHP_EOL;
echo $pi . PHP_EOL;
echo $zero;
Результат
19.99
-3.5
3.14159
0

Как выполнять математические операции с float?

С дробными числами можно выполнять те же математические операции, что и с целыми:
+ — сложение
- — вычитание
* — умножение
/ — деление

Пример кода PHP #2
<?php

echo 10.5 + 3.2;  // Сложение
echo PHP_EOL;
echo 10.5 - 3.2;  // Вычитание
echo PHP_EOL;
echo 2.5 * 4.0;   // Умножение
echo PHP_EOL;
echo 10.0 / 3.0;  // Деление
Результат
13.7
7.3
10
3.3333333333333

Обратите внимание: если у дробного числа нет дробной части, echo выводит его без .0. Результат 2.5 * 4.0 выведен как 10, а 0.0 из первого примера — как 0. Тип значения при этом остаётся float.

Результат математических операций с дробными числами можно присваивать переменным и выводить на экран.

Пример кода PHP #3
<?php

$width = 5.5;
$height = 3.2;
$area = $width * $height;

echo 'Ширина: ' . $width . PHP_EOL;
echo 'Высота: ' . $height . PHP_EOL;
echo 'Площадь: ' . $area;
Результат
Ширина: 5.5
Высота: 3.2
Площадь: 17.6

Когда деление целых чисел возвращает float?

При делении двух целых чисел, если результат не является целым числом, PHP автоматически вернет float.
Для определения типа значения можно использовать функцию gettype().

Пример кода PHP #4
<?php

$a = 10;
$b = 3;

$result = $a / $b;

echo $result . PHP_EOL;       // 3.3333333333333
echo gettype($result) . PHP_EOL; // double (это и есть float)
echo gettype($a);             // integer
Результат
3.3333333333333
double
integer

Как округлять дробные числа?

PHP предоставляет несколько функций для округления дробных чисел:
round() — округление по математическим правилам
ceil() — округление вверх
floor() — округление вниз

Пример кода PHP #5
<?php

$number = 7.7;

echo round($number) . PHP_EOL;  // 8 - округление по правилам математики
echo ceil($number) . PHP_EOL;   // 8 - округление вверх
echo floor($number) . PHP_EOL;  // 7 - округление вниз

$number2 = 4.3;

echo round($number2) . PHP_EOL; // 4
echo ceil($number2) . PHP_EOL;  // 5
echo floor($number2);           // 4
Результат
8
8
7
4
5
4

Функция round() может принимать второй параметр — количество знаков после запятой.

Пример кода PHP #6
<?php

$number = 3.14159;

echo round($number, 2) . PHP_EOL; // 3.14
echo round($number, 3) . PHP_EOL; // 3.142
echo round($number, 4);           // 3.1416
Результат
3.14
3.142
3.1416

Как объединить float и строки?

Дробные числа, как и целые, можно объединять со строками с помощью оператора точка . (конкатенация) или вставлять в двойные кавычки.

Пример кода PHP #7
<?php

$price = 49.99;
$quantity = 3;

// Конкатенация с float
echo 'Цена: ' . $price . ' руб.' . PHP_EOL;

// Вставка переменной в двойные кавычки
echo "Итого: {$price} руб. за штуку" . PHP_EOL;

$total = $price * $quantity;
echo "Общая сумма: {$total} руб.";
Результат
Цена: 49.99 руб.
Итого: 49.99 руб. за штуку
Общая сумма: 149.97 руб.

Особенности точности float

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

echo округляет дробное число при выводе, поэтому неточность с его помощью не видна. Точное значение показывает функция var_dump() — она выводит тип и значение.
Оператор == сравнивает два значения: true — равны, false — нет. Подробнее о сравнении — в уроке про тип bool.

Пример кода PHP #8
<?php

// Сумма 0.1 и 0.2 хранится неточно
var_dump(0.1 + 0.2);        // float(0.30000000000000004)
var_dump(0.1 + 0.2 == 0.3); // bool(false)

// Решение: округлить результат с помощью round()
$result = round(0.1 + 0.2, 1);
var_dump($result);          // float(0.3)
var_dump($result == 0.3);   // bool(true)
Результат
float(0.30000000000000004)
bool(false)
float(0.3)
bool(true)