aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/число/issafeinteger/index.html
blob: 8ff3f1fa81d2c551172dea5d7ce2288087709e54 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
---
title: Number.isSafeInteger()
slug: Web/JavaScript/Reference/Global_Objects/Число/isSafeInteger
tags:
  - ECMAScript 2015
  - JavaScript
  - Number
  - метод
translation_of: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger
---
<div>{{JSRef}}</div>

<p>Метод <strong><code>Number.isSafeInteger()</code></strong> визначає, чи є надане значення безпечним цілим числом.</p>

<div>{{EmbedInteractiveExample("pages/js/number-issafeinteger.html")}}</div>



<p>Безпечним цілим числом вважається ціле число, яке</p>

<ul>
 <li>може бути точно відображене як число IEEE-754 подвійної точності, і</li>
 <li>чиє відображення IEEE-754 не може бути результатом округлення іншого цілого числа для відповідності відображенню IEEE-754.</li>
</ul>

<p>Наприклад, <code>2<sup>53</sup> - 1</code> є безпечним цілим числом: воно може бути точно відображене, і жодне інше ціле число не округлюється до нього в будь-якому режимі округлення IEEE-754. Для контрасту, <code>2<sup>53</sup></code> <em>не є</em> безпечним цілим числом: воно може бути точно відображене у IEEE-754, але ціле число <code>2<sup>53</sup> + 1</code> не може бути безпосередньо відображене у IEEE-754, а, натомість, округлюється до <code>2<sup>53</sup></code> під час округлення до найближчого цілого та округлення до меншого за модулем. Безпечні цілі числа включають усі цілі числа від <code>-(2<sup>53</sup> - 1)</code> включно до <code>2<sup>53</sup> - 1</code> включно (± <code>9007199254740991</code> або ± 9,007,199,254,740,991).  </p>

<p>Робота зі значеннями, більшими чи меншими за ~9 квадрільйонів, з повною точністю вимагає використання <a href="https://uk.wikipedia.org/wiki/%D0%94%D0%BE%D0%B2%D0%B3%D0%B0_%D0%B0%D1%80%D0%B8%D1%84%D0%BC%D0%B5%D1%82%D0%B8%D0%BA%D0%B0">бібліотеки для арифметики довільної точності</a>. Дивіться <a href="http://floating-point-gui.de/">Що необхідно знати кожному програмісту про арифметику чисел з рухомою крапкою</a>, щоб дізнатись більше щодо відображення чисел з рухомою крапкою.</p>

<p>Для більших чисел розгляньте використання типу {{jsxref("BigInt")}}.</p>

<h2 id="Синтаксис">Синтаксис</h2>

<pre class="syntaxbox notranslate"><code>Number.isSafeInteger(<var>testValue</var>)</code>
</pre>

<h3 id="Параметри">Параметри</h3>

<dl>
 <dt><code>testValue</code></dt>
 <dd>Значення, що перевірятиметься на відповідність безпечному цілому числу.</dd>
</dl>

<h3 id="Значення_що_повертається">Значення, що повертається</h3>

<p>Значення {{jsxref("Boolean")}}, яке вказує, чи є надане значення безпечним цілим числом.</p>

<h2 id="Поліфіл">Поліфіл</h2>

<pre class="brush: js notranslate">Number.isSafeInteger = Number.isSafeInteger || function (value) {
   return Number.isInteger(value) &amp;&amp; Math.abs(value) &lt;= Number.MAX_SAFE_INTEGER;
};
</pre>

<h2 id="Приклади">Приклади</h2>

<h3 id="Використання_isSafeInteger">Використання isSafeInteger</h3>

<pre class="brush: js notranslate">Number.isSafeInteger(3);                    // true
Number.isSafeInteger(Math.pow(2, 53));      // false
Number.isSafeInteger(Math.pow(2, 53) - 1);  // true
Number.isSafeInteger(NaN);                  // false
Number.isSafeInteger(Infinity);             // false
Number.isSafeInteger('3');                  // false
Number.isSafeInteger(3.1);                  // false
Number.isSafeInteger(3.0);                  // true
</pre>

<h2 id="Специфікації">Специфікації</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Специфікація</th>
  </tr>
  <tr>
   <td>{{SpecName('ESDraft', '#sec-number.issafeinteger', 'Number.isSafeInteger')}}</td>
  </tr>
 </tbody>
</table>

<h2 id="Сумісність_з_веб-переглядачами">Сумісність з веб-переглядачами</h2>

<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>

<p>{{Compat("javascript.builtins.Number.isSafeInteger")}}</p>

<h2 id="Див._також">Див. також</h2>

<ul>
 <li>Об'єкт {{jsxref("Число", "Number")}}, якому належить цей метод.</li>
 <li>{{jsxref("Number.MIN_SAFE_INTEGER")}}</li>
 <li>{{jsxref("Number.MAX_SAFE_INTEGER")}}</li>
 <li>{{jsxref("BigInt")}}</li>
</ul>