Spec-Zone.ru › JavaScript

Math.expm1()

Базовый уровень Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

Статический метод Math.expm1() возвращает e, возведенное в степень числа, уменьшенное на 1. То есть

𝙼𝚊𝚝𝚑.𝚎𝚡𝚙𝚖𝟷(𝚡)=ex−1\mathtt{\operatorname{Math.expm1}(x)} = \mathrm{e}^x - 1

Попробовать

console.log(Math.expm1(0));
// Expected output: 0

console.log(Math.expm1(1));
// Expected output: 1.718281828459045

console.log(Math.expm1(-1));
// Expected output: -0.6321205588285577

console.log(Math.expm1(2));
// Expected output: 6.38905609893065

Синтаксис

Math.expm1(x)

Параметры

x
Число.

Возвращаемое значение

Число, представляющее ex - 1, где e — основание натурального логарифма.

Описание

Для очень малых значений x, добавление 1 может уменьшить или устранить точность. Двойная точность с плавающей запятой, используемая в JS, дает около 15 знаков точности. 1 + 1e-15 = 1.000000000000001, но 1 + 1e-16 = 1.000000000000000 и, следовательно, ровно 1.0 в этой арифметике, поскольку цифры после 15-го знака округляются.

Когда вы вычисляете ex\mathrm{e}^x, где x — число, очень близкое к 0, вы должны получить результат, очень близкий к 1 + x, потому что: limx→0ex−1x=1\lim_{x \to 0} \frac{\mathrm{e}^x - 1}{x} = 1. Если вы вычислите Math.exp(1.1111111111e-15) - 1, вы должны получить ответ, близкий к 1.1111111111e-15. Вместо этого, из-за того, что самая старшая значащая цифра в результате Math.exp является цифрой единиц 1, окончательное значение оказывается равным 1.1102230246251565e-15, всего с 3 верными знаками. Если вы вместо этого вычислите Math.expm1(1.1111111111e-15), вы получите гораздо более точный ответ, 1.1111111111000007e-15, с 11 верными знаками точности.

Поскольку expm1() является статическим методом Math, его всегда следует использовать как Math.expm1(), а не как метод созданного вами объекта Math (Math не является конструктором).

Примеры

Использование Math.expm1()

Math.expm1(-Infinity); // -1
Math.expm1(-1); // -0.6321205588285577
Math.expm1(-0); // -0
Math.expm1(0); // 0
Math.expm1(1); // 1.718281828459045
Math.expm1(Infinity); // Infinity

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-math.expm1

Совместимость с браузерами

Десктопные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
expm1
38
12
25
25
8
38
25
25
8
3.0
38
8
1.0.0
1.0
0.12.0

Смотрите также

  • Полифил Math.expm1 в core-js
  • Math.E
  • Math.exp()
  • Math.log()
  • Math.log10()
  • Math.log1p()
  • Math.log2()
  • Math.pow()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/expm1

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API