From 7dd26b8751d2306aa0ca4a09870003bf8c2ebbdd Mon Sep 17 00:00:00 2001 From: Malkey Date: Tue, 30 Jul 2024 14:53:52 +0300 Subject: [PATCH 1/3] fix superscript in range --- .../reference/global_objects/number/max_safe_integer/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/files/ru/web/javascript/reference/global_objects/number/max_safe_integer/index.md b/files/ru/web/javascript/reference/global_objects/number/max_safe_integer/index.md index ef06b5976d08cc..027be2a21b7c4d 100644 --- a/files/ru/web/javascript/reference/global_objects/number/max_safe_integer/index.md +++ b/files/ru/web/javascript/reference/global_objects/number/max_safe_integer/index.md @@ -7,13 +7,13 @@ slug: Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER ## Сводка -Константа **`Number.MAX_SAFE_INTEGER`** представляет максимальное безопасное целочисленное значение в JavaScript (`253 - 1`). +Константа **`Number.MAX_SAFE_INTEGER`** представляет максимальное безопасное целочисленное значение в JavaScript (253 – 1). {{js_property_attributes(0, 0, 0)}} ## Описание -Константа `MAX_SAFE_INTEGER` имеет значение `9007199254740991`. Смысл этого числа в том, что в JavaScript используется [формат чисел с плавающей запятой двойной точности](https://ru.wikipedia.org/wiki/Число_двойной_точности), как определено в стандарте [IEEE 754](https://ru.wikipedia.org/wiki/IEEE_754), а он может безопасно представлять числа только в диапазоне от `-(253 - 1)` до `253 - 1`. +Константа `MAX_SAFE_INTEGER` имеет значение `9007199254740991`. Смысл этого числа в том, что в JavaScript используется [формат чисел с плавающей запятой двойной точности](https://ru.wikipedia.org/wiki/Число_двойной_точности), как определено в стандарте [IEEE 754](https://ru.wikipedia.org/wiki/IEEE_754), а он может безопасно представлять числа только в диапазоне от -(253 – 1) до 253 – 1. Поскольку `MAX_SAFE_INTEGER` является статическим свойством объекта {{jsxref("Global_Objects/Number", "Number")}}, вы всегда должны использовать его как `Number.MAX_SAFE_INTEGER`, а не как свойство созданного вами объекта {{jsxref("Global_Objects/Number", "Number")}}. From 44efcb3fa7104a208861c3c86cabfb26e6083b02 Mon Sep 17 00:00:00 2001 From: Leonid Vinogradov Date: Wed, 31 Jul 2024 01:23:50 +0300 Subject: [PATCH 2/3] update translation --- .../number/max_safe_integer/index.md | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/files/ru/web/javascript/reference/global_objects/number/max_safe_integer/index.md b/files/ru/web/javascript/reference/global_objects/number/max_safe_integer/index.md index 027be2a21b7c4d..832f8ea46b66fb 100644 --- a/files/ru/web/javascript/reference/global_objects/number/max_safe_integer/index.md +++ b/files/ru/web/javascript/reference/global_objects/number/max_safe_integer/index.md @@ -1,35 +1,44 @@ --- title: Number.MAX_SAFE_INTEGER slug: Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER +l10n: + sourceCommit: fcd80ee4c8477b6f73553bfada841781cf74cf46 --- {{JSRef}} -## Сводка +Статическое свойство **`Number.MAX_SAFE_INTEGER`** представляет максимальное безопасное целочисленное значение в JavaScript (253 – 1). -Константа **`Number.MAX_SAFE_INTEGER`** представляет максимальное безопасное целочисленное значение в JavaScript (253 – 1). +Для бо́льших целых чисел используется {{jsxref("BigInt")}}. + +{{EmbedInteractiveExample("pages/js/number-maxsafeinteger.html")}} + +## Значение + +`9007199254740991` (9,007,199,254,740,991 или приблизительно 9 квадриллионов). {{js_property_attributes(0, 0, 0)}} ## Описание -Константа `MAX_SAFE_INTEGER` имеет значение `9007199254740991`. Смысл этого числа в том, что в JavaScript используется [формат чисел с плавающей запятой двойной точности](https://ru.wikipedia.org/wiki/Число_двойной_точности), как определено в стандарте [IEEE 754](https://ru.wikipedia.org/wiki/IEEE_754), а он может безопасно представлять числа только в диапазоне от -(253 – 1) до 253 – 1. +[Формат чисел с плавающей запятой двойной точности](https://ru.wikipedia.org/wiki/Число_двойной_точности) имеет только 52 бита для представления [мантиссы](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number#number_encoding), поэтому он может безопасно представлять целые числа в диапазоне от -(253 – 1) до 253 – 1. «Безопасность» в этом контексте означает способность точно представлять целые числа и правильно их сравнивать. Например, `Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2` будет иметь истинное значение, что математически неверно. Больше информации в {{jsxref("Number.isSafeInteger()")}}. -Поскольку `MAX_SAFE_INTEGER` является статическим свойством объекта {{jsxref("Global_Objects/Number", "Number")}}, вы всегда должны использовать его как `Number.MAX_SAFE_INTEGER`, а не как свойство созданного вами объекта {{jsxref("Global_Objects/Number", "Number")}}. +Поскольку `MAX_SAFE_INTEGER` является статическим свойством объекта {{jsxref("Number")}}, вы всегда должны использовать его как `Number.MAX_SAFE_INTEGER`, а не как свойство числового значения. ## Примеры +### Значение MAX_SAFE_INTEGER + ```js Number.MAX_SAFE_INTEGER; // 9007199254740991 -Math.pow(2, 53) - 1; // 9007199254740991 ``` -## Полифил +### Связь между MAX_SAFE_INTEGER и EPSILON + +{{jsxref("Number.EPSILON")}} — это 2-52, а `MAX_SAFE_INTEGER` — это (253 – 1), оба значения являются производными от размера мантиссы, который составляет 53 бита (при этом старший бит всегда равен 1). Их умножение даст значение, очень близкое (но не равное) 2. ```js -if (!Number.MAX_SAFE_INTEGER) { - Number.MAX_SAFE_INTEGER = 9007199254740991; // Math.pow(2, 53) - 1; -} +Number.MAX_SAFE_INTEGER * Number.EPSILON; // 1.9999999999999998 ``` ## Спецификации @@ -42,5 +51,7 @@ if (!Number.MAX_SAFE_INTEGER) { ## Смотрите также +- [Полифил `Number.MAX_SAFE_INTEGER` в `core-js`](https://github.com/zloirock/core-js#ecmascript-number) - {{jsxref("Number.MIN_SAFE_INTEGER")}} - {{jsxref("Number.isSafeInteger()")}} +- {{jsxref("BigInt")}} From 1cd1ccf0042a0e65e7143412a4fe4f5737cf5a12 Mon Sep 17 00:00:00 2001 From: Leonid Vinogradov Date: Wed, 31 Jul 2024 01:28:05 +0300 Subject: [PATCH 3/3] Update files/ru/web/javascript/reference/global_objects/number/max_safe_integer/index.md Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .../reference/global_objects/number/max_safe_integer/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/files/ru/web/javascript/reference/global_objects/number/max_safe_integer/index.md b/files/ru/web/javascript/reference/global_objects/number/max_safe_integer/index.md index 832f8ea46b66fb..3452bdee3fc00a 100644 --- a/files/ru/web/javascript/reference/global_objects/number/max_safe_integer/index.md +++ b/files/ru/web/javascript/reference/global_objects/number/max_safe_integer/index.md @@ -21,7 +21,7 @@ l10n: ## Описание -[Формат чисел с плавающей запятой двойной точности](https://ru.wikipedia.org/wiki/Число_двойной_точности) имеет только 52 бита для представления [мантиссы](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number#number_encoding), поэтому он может безопасно представлять целые числа в диапазоне от -(253 – 1) до 253 – 1. «Безопасность» в этом контексте означает способность точно представлять целые числа и правильно их сравнивать. Например, `Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2` будет иметь истинное значение, что математически неверно. Больше информации в {{jsxref("Number.isSafeInteger()")}}. +[Формат чисел с плавающей запятой двойной точности](https://ru.wikipedia.org/wiki/Число_двойной_точности) имеет только 52 бита для представления [мантиссы](/ru/docs/Web/JavaScript/Reference/Global_Objects/Number#number_encoding), поэтому он может безопасно представлять целые числа в диапазоне от -(253 – 1) до 253 – 1. «Безопасность» в этом контексте означает способность точно представлять целые числа и правильно их сравнивать. Например, `Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2` будет иметь истинное значение, что математически неверно. Больше информации в {{jsxref("Number.isSafeInteger()")}}. Поскольку `MAX_SAFE_INTEGER` является статическим свойством объекта {{jsxref("Number")}}, вы всегда должны использовать его как `Number.MAX_SAFE_INTEGER`, а не как свойство числового значения.