Math.expm1()

Статичний метод Math.expm1() (експонента мінус 1) повертає e в степені, заданому переданим числом, мінус 1. А саме

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

Спробуйте його в дії

Синтаксис

Math.expm1(x)

Параметри

x

Число.

Повернене значення

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

Опис

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

Коли обчислювати ex\mathrm{e}^x, де x – це число, дуже близьке до 0, повинен виходити результат, дуже близький до 1 + x, тому що limx0ex1x=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.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
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js
expm1
Chrome Full support 38
Edge Full support 12
Firefox Full support 25
Internet Explorer No support No
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

Дивіться також