Math.expm1()
Статичний метод Math.expm1()
(експонента мінус 1) повертає e в степені, заданому переданим числом, мінус 1. А саме
Спробуйте його в дії
Синтаксис
Math.expm1(x)
Параметри
x
Число.
Повернене значення
Число, що представляє ex - 1, де e – це основа натурального логарифму.
Опис
Для дуже малих значень x додавання 1 може знизити чи звести до нуля будь-яку точність. Числа з рухомою комою подвійної точності в JS дають близько 15 цифр точності. 1 + 1e-15 = 1.000000000000001, але 1 + 1e-16 = 1.000000000000000, а отже – у такій арифметиці дорівнює 1.0, тому що цифри після п'ятнадцятої округляються.
Коли обчислювати , де x – це число, дуже близьке до 0, повинен виходити результат, дуже близький до 1 + x, тому що . Якщо рахувати Math.exp(1.1111111111e-15) - 1
, то повинен виходити результат, близький до 1.1111111111e-15
. Замість цього, оскільки найвища значна цифра в результаті Math.exp
– це 1
, то остаточне значення виходить 1.1102230246251565e-15
, в чому лише 3 коректні цифри. Якщо ж замість цього рахувати Math.exp1m(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
Специфікації
Сумісність із браузерами
desktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
expm1
|
Chrome Full support 38 | Edge Full support 12 | Firefox Full support 25 | Internet Explorer No support Ні | Opera Full support 25 | Safari Full support 8 | WebView Android Full support 38 | Chrome Android Full support 38 | Firefox for Android Full support 25 | Opera Android Full support 25 | Safari on iOS Full support 8 | Samsung Internet Full support 3.0 | Deno Full support 1.0 | Node.js Full support 0.12.0 |