aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/global_objects/number/toprecision/index.html
blob: 83157bf3d2dc018ae3017c14cae7d59cd4cb66a9 (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
---
title: Number.prototype.toPrecision()
slug: Web/JavaScript/Reference/Global_Objects/Number/toPrecision
tags:
  - JavaScript
  - Method
  - Number
  - Prototype
translation_of: Web/JavaScript/Reference/Global_Objects/Number/toPrecision
---
<div>{{JSRef("Global_Objects", "Number")}}</div>

<h2 id="Summary" name="Summary">Сводка</h2>

<p>Метод <strong><code>toPrecision()</code></strong> возвращает строку, представляющую объект {{jsxref("Global_Objects/Number", "Number")}} с указанной точностью.</p>

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

<pre class="syntaxbox"><code><var>numObj</var>.toPrecision([<var>precision</var>])</code></pre>

<h3 id="Parameters" name="Parameters">Параметры</h3>

<dl>
 <dt><code>precision</code></dt>
 <dd>Необязательный параметр. Целое число, определяющее количество значащих цифр.</dd>
</dl>

<h3 id="Returns" name="Returns">Возвращаемое значение</h3>

<p>Строка, представляющая объект {{jsxref("Global_Objects/Number", "Number")}} в записи с фиксированной запятой или в экспоненциальной записи, округлённое до <code>precision</code> значащих цифр. Смотрите обсуждение округления в описании метода {{jsxref("Number.prototype.toFixed", "toFixed()")}}, которое таким же образом применяется и к методу <code>toPrecision()</code>.</p>

<p>Если аргумент <code>precision</code> опущен, поведение аналогично методу {{jsxref("Number.prototype.toString()")}}. Если он не является целым числом, он будет округлён к ближайшему целому числу.</p>

<h3 id="Throws" name="Throws">Выбрасываемые исключения</h3>

<dl>
 <dt>{{jsxref("Global_Objects/RangeError", "RangeError")}}</dt>
 <dd>Если параметр <code>precison</code> не находится в диапазоне от 1 до 100 (включительно), будет выброшено исключение {{jsxref("Global_Objects/RangeError", "RangeError")}}. Также реализации могут поддерживать большие и меньшие значения. ECMA-262 требует точности только до 21 значащей цифры.</dd>
</dl>

<h2 id="Examples" name="Examples">Примеры</h2>

<h3 id="Example_Using_toPrecision" name="Example:_Using_toPrecision">Пример: использование <code>toPrecision</code></h3>

<pre class="brush: js">var numObj = 5.123456;

console.log(numObj.toPrecision());    // выведет '5.123456'
console.log(numObj.toPrecision(5));   // выведет '5.1235'
console.log(numObj.toPrecision(2));   // выведет '5.1'
console.log(numObj.toPrecision(1));   // выведет '5'<code class="language-js">

numObj <span class="operator token">=</span> <span class="number token">0.000123;</span>

console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>numObj<span class="punctuation token">.</span><span class="function token">toPrecision</span><span class="punctuation token">(</span><span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span>    <span class="comment token">// выведет '0.000123'</span>
console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>numObj<span class="punctuation token">.</span><span class="function token">toPrecision</span><span class="punctuation token">(</span><span class="number token">5</span><span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span>   <span class="comment token">// выведет '0.00012300'</span>
console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>numObj<span class="punctuation token">.</span><span class="function token">toPrecision</span><span class="punctuation token">(</span><span class="number token">2</span><span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span>   <span class="comment token">// выведет '0.00012'</span>
console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>numObj<span class="punctuation token">.</span><span class="function token">toPrecision</span><span class="punctuation token">(</span><span class="number token">1</span><span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span>   <span class="comment token">// выведет '0.0001' </span></code>

// Обратите внимание, что если заданного количества разрядов
// недостаточно для точного отображения целой части числа,
// значение может быть возвращено в экспоненциальной записи.
console.log((1234.5).toPrecision(2)); // выведет '1.2e+3'
</pre>

<h2 id="Specifications" name="Specifications">Спецификации</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Спецификация</th>
   <th scope="col">Статус</th>
   <th scope="col">Комментарии</th>
  </tr>
  <tr>
   <td>ECMAScript 3-е издание.</td>
   <td>Стандарт</td>
   <td>Изначальное определение. Реализована в JavaScript 1.5.</td>
  </tr>
  <tr>
   <td>{{SpecName('ES5.1', '#sec-15.7.4.7', 'Number.prototype.toPrecision')}}</td>
   <td>{{Spec2('ES5.1')}}</td>
   <td></td>
  </tr>
  <tr>
   <td>{{SpecName('ES6', '#sec-number.prototype.toprecision', 'Number.prototype.toPrecision')}}</td>
   <td>{{Spec2('ES6')}}</td>
   <td></td>
  </tr>
 </tbody>
</table>

<h2 id="Browser_compatibility" name="Browser_compatibility">Совместимость с браузерами</h2>

<div>{{CompatibilityTable}}</div>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Возможность</th>
   <th>Chrome</th>
   <th>Firefox (Gecko)</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari</th>
  </tr>
  <tr>
   <td>Базовая поддержка</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Возможность</th>
   <th>Android</th>
   <th>Chrome для Android</th>
   <th>Firefox Mobile (Gecko)</th>
   <th>IE Mobile</th>
   <th>Opera Mobile</th>
   <th>Safari Mobile</th>
  </tr>
  <tr>
   <td>Базовая поддержка</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
   <td>{{CompatVersionUnknown}}</td>
  </tr>
 </tbody>
</table>
</div>

<h2 id="See_also" name="See_also">Смотрите также</h2>

<ul>
 <li>{{jsxref("Number.prototype.toFixed()")}}</li>
 <li>{{jsxref("Number.prototype.toExponential()")}}</li>
 <li>{{jsxref("Number.prototype.toString()")}}</li>
</ul>