W3docs

exp()

Функция exp() в PHP вычисляет значение e в степени заданного числа. Синтаксис, примеры и типичные ошибки.

Функция exp() в PHP возвращает e в степени заданного числа — то есть e^x. Здесь e (число Эйлера, приближённо равное 2.71828) является основанием натурального логарифма и широко используется в науке и финансах: при расчёте сложных процентов, росте популяций, радиоактивном распаде и в теории вероятностей. На этой странице рассматриваются синтаксис, возвращаемое значение, несколько примеров с разбором, связь с обратной функцией log() и распространённые ошибки.

Синтаксис

exp(float $num): float
  • $num — показатель степени. Любое число (положительное, отрицательное, ноль или вещественное).
  • Возвращаемое значениеfloat: значение e, возведённого в степень $num.

Поскольку e является иррациональным числом, результат почти всегда является бесконечной десятичной дробью. PHP выводит его с точностью, заданной директивой precision в php.ini (по умолчанию 14 значащих цифр).

Простой пример

php— editable, runs on the server

Мы передаём 2 в exp(), и функция вычисляет . Результат 7.3890560989307 — это 2.71828..., умноженное само на себя.

Ключевые опорные значения

Несколько значений аргумента стоит запомнить — они наглядно показывают, что делает функция:

<?php
echo exp(0), "\n";  // 1            (anything^0 is 1)
echo exp(1), "\n";  // 2.718281828459   (this IS e, same as the M_E constant)
echo exp(-1), "\n"; // 0.36787944117144 (e^-1 = 1/e)
echo exp(0.5), "\n";// 1.6487212707001  (the square root of e)
?>
  • exp(0) равно 1, так как любое основание, возведённое в степень 0, даёт 1.
  • exp(1) равно встроенной константе PHP M_E. Используйте M_E напрямую, когда вам просто нужно значение e, без вычислений.
  • Отрицательный показатель даёт значение от 0 до 1 (e^-x = 1/e^x) — именно так моделируется экспоненциальное затухание.

exp() — обратная функция к log()

Натуральный логарифм, функция PHP log(), отменяет действие exp(), и наоборот. При последовательном применении они возвращают исходное число:

<?php
$x = 5;

echo log(exp($x)), "\n"; // 5
echo exp(log($x)), "\n"; // 5
?>

Именно это свойство объясняет, почему exp() появляется везде, где модель выражена через натуральные логарифмы и требуется перейти обратно к обычной шкале.

Практический пример: непрерывное начисление процентов

Классический пример применения exp() — формула непрерывного начисления сложных процентов: A = P · e^(r·t):

<?php
$principal = 1000;  // starting amount
$rate      = 0.05;  // 5% annual rate
$years     = 10;

$amount = $principal * exp($rate * $years);

echo round($amount, 2); // 1648.72
?>

Через 10 лет $1000, начисляемые непрерывно под 5% годовых, вырастают примерно до $1648.72.

exp() vs. pow()

Легко перепутать exp() с pow():

  • exp($x) всегда использует e в качестве основания — это то же самое, что pow(M_E, $x).
  • pow($base, $exp) позволяет выбрать любое основание, например pow(2, 10) для 2¹⁰.

Таким образом, exp(3) и pow(M_E, 3) дают одинаковый результат, но используйте pow(), когда основание отличается от e.

Распространённые ошибки

  • Не передавайте строку с единицами измерения. exp("2 apples") приводится к exp(2) (с предупреждением в современных версиях PHP). Всегда передавайте чистое числовое значение.
  • Большие аргументы вызывают переполнение до INF. exp(710) выходит за пределы диапазона PHP float и возвращает INF. Защищайтесь от очень больших показателей, если значение поступает от пользователя.
  • Отображаемая точность — это не потеря точности. Полный float хранится внутренне; усекается только выводимая строка. Используйте printf() или number_format(), чтобы управлять количеством отображаемых цифр.

Заключение

exp() возвращает e^x и является строительным блоком для любых вычислений с натуральной экспонентой в PHP — роста, затухания и непрерывного начисления процентов. Помните, что эта функция является обратной к log(), что exp(1) равно константе M_E, и что для основания, отличного от e, следует использовать pow(). Для операций в стиле обратного квадратного корня см. также sqrt().

Практика

Практика
Что делает функция PHP exp()?
Что делает функция PHP exp()?
Was this page helpful?