Math.expm1()
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Статический метод Math.expm1() возвращает e, возведенное в степень числа, уменьшенное на 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-го знака округляются.
Когда вы вычисляете , где x — число, очень близкое к 0, вы должны получить результат, очень близкий к 1 + x, потому что: . Если вы вычислите 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
Спецификации
Совместимость с браузерами
| Десктопные | Мобильные | Серверные | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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.EMath.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