Переклад цієї статті ще триває.

Функція Math.log1p() повертає натуральний логарифм (за основою e) від результату виразу (1 + дане число). Тобто

x>-1,Math.log1p(x)=ln(1+x)\forall x > -1, \mathtt{\operatorname{Math.log1p}(x)} = \ln(1 + x)

Синтаксис

Math.log1p(x)

Аргументи

x
Число.

Результат

Натуральний логарифм (за основою e) від 1+x. Якщо значення аргументу менше за -1, функція повертає 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, результатом зажди буде 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);
};

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

Специфікація Статус Примітка
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.log1p' in that specification.
Standard Первинне визначення.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Math.log1p' in that specification.
Draft  

Сумісність із браузерами

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support38 Yes25 No258
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes25 Yes8 Yes

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

Мітки документа й учасники

Зробили внесок у цю сторінку: AdriandeCita
Востаннє оновлена: AdriandeCita,