--- title: Math.log1p() slug: Web/JavaScript/Reference/Global_Objects/Math/log1p tags: - ECMAScript 2015 - JavaScript - Math - Довідка - метод translation_of: Web/JavaScript/Reference/Global_Objects/Math/log1p ---
Функція Math.log1p() повертає натуральний логарифм (за основою {{jsxref("Math.E", "e")}}) від результату виразу 1 + дане число. Тобто
Джерело цих інтерактивних прикладів зберігається у репозиторії на GitHub. Якщо ви маєте бажання зробити свій внесок у проект інтерактивних прикладів - будь ласка, зклонуйте репозиторій https://github.com/mdn/interactive-examples та пришліть нам pull request.
Math.log1p(x)
xНатуральний логарифм (за основою {{jsxref("Math.E", "e")}}) від 1+x. Якщо значення аргументу менше за -1, функція повертає {{jsxref("NaN")}}.
Для дуже малих значень x, додавання 1 може повністю або частково зменшити точність . Числа із рухомою комою подвійної точності, що застосовуються у JS, дають вам приблизно 15 знаків точності. 1 + 1e-15 = 1.000000000000001, але 1 + 1e-16 = 1.000000000000000, тобто 1.0. Просто тому, що 15 останніх знаків при такому округленні зникають.
Коли ви обчислюєте log(1 + x), ви отримаєте результат, дуже близький до x у випадках, коли x являється малою величиною (саме тому це називається 'натуральним' логарифмом). Якщо ви обчислите Math.log(1 + 1.1111111111e-15) - ви, ймовірно, отримаєте щось близьке до 1.1111111111e-15. Якщо ж, натомість, ви візьмете логарифм від 1.00000000000000111022 (так, двійкове округлення інколи виглядає не надто гарно), ви отримаєте в якості відповіді 1.11022...e-15, із лише трьома значущими цифрами. Зате за допомогою Math.log1p(1.1111111111e-15) ви отримаєте значно точніший результат - 1.1111111110999995e-15 - із 15 значущими цифрами (власне навіть 16 для цього випадку).
Якщо значення x менше, ніж -1, результатом зажди буде {{jsxref("NaN")}}.
У зв'язку з тим, що log1p() - це статичний метод Math, слід завжди викликати його як Math.log1p(), аніж як метод створеного вами об'єкту Math (оскільки Math не являється конструктором).
Math.log1p()Math.log1p(1); // 0.6931471805599453 Math.log1p(0); // 0 Math.log1p(-1); // -Infinity Math.log1p(-2); // NaN
Метод може бути відтворений за допомогою наступної функції:
Math.log1p = Math.log1p || function(x) {
return Math.log(1 + x);
};
| Специфікація |
|---|
| {{SpecName('ESDraft', '#sec-math.log1p', 'Math.log1p')}} |
Таблиця сумісності на цій сторінці сформована автоматично із структурованих даних. Якщо ви маєте бажання зробити свій внесок до цих даних - будь-ласка, ось репозиторій https://github.com/mdn/browser-compat-data, надішліть нам свій pull request.
{{Compat("javascript.builtins.Math.log1p")}}