ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptの丸め番号のガイド
キーポイント
Math.round
、Math.floor
、Math.ceil
など、数字を丸める方法をいくつか提供しています。 Math.trunc
最寄りの整数に丸め、Math.round
丸め、Math.floor
ラウンドアップ、Math.ceil
数の分数部分を切り捨てます。 Math.trunc
Number.toFixed
メソッドを提供します。これらのメソッドは、丸い数字を文字列として返します。 Number.toPrecision
Math.round
、Math.floor
、Math.ceil
の動作は異なります。たとえば、Math.trunc
は負の数を次の最小整数まで丸めますが、Math.floor
は分数部分を切り捨て、効果的に上方に丸めます。 Math.trunc
Math.fround
Math.round
、Math.floor
、またはMath.ceil
は、常に丸めまたは上昇したり、負の数に対処するのに適している場合があります。 Math.trunc
またはNumber.toFixed
は、特定の小数またはかなりの数への丸めに適用されます。 Number.toPrecision
オブジェクトのプロパティですが、それらをいくつかの変数に割り当てて、処理しやすくしましょう。
Math
Proのヒント:オブジェクト破壊を使用して、この割り当てを並べることもできます:Math
<code class="language-javascript">const PI = Math.PI; const E = Math.E;</code>これらの定数を定義したので、JavaScriptの数字を丸める方法をいくつか見てみましょう。
Math.round
を使用したJavaScriptのラウンド番号
です。これは最も簡単な選択です。最も近い整数に分数部分を持つ任意の数を丸めます。次のルールを使用します。数値が正確に2つの整数の間にある場合、それを切り上げます。たとえば、2.5は3まで丸めます。 Math.round
この方法を使用するには、パラメーターとして丸められる数値を提供する必要があります。
数値を最も近い整数値に丸めたい場合は、
は非常に便利です。たとえば、3つのテストの平均スコアを計算している場合は、3つのスコアを追加して3つのスコアを分割します。これは整数を取得できない可能性があるため、<code class="language-javascript">const PI = Math.PI; const E = Math.E;</code>:
を使用して最も近い値に丸めることができます。
Math.round()
Math.round()
<code class="language-javascript">const { PI, E } = Math;</code>を使用して数字を丸めます
Math.floor
です。これにより、値は常に下の整数まで丸くなります(名前は「フロア」に押し下げられることを意味します):
Math.floor
<code class="language-javascript">Math.round(2.3); // 因为更接近2,所以向下舍入 Math.round(2.921); // 因为更接近3,所以向上舍入 Math.round(2.5); // 因为正好位于中间,所以向上舍入 Math.round(PI); Math.round(E);</code>:
を使用して配列からランダム要素を選択する方法を示しています。
Math.floor
Math.floor
上記のコードでは、
<code class="language-javascript">const test1 = 86; const test2 = 93; const test3 = 95; const average = Math.round((test1 + test2 + test3) / 3);</code>
Math.floor
Math.ceil
のことです。この名前は「天井」に由来しており、「フローリング」に反して、値が上昇していることを意味します。この方法は、他のすべての方法と同じように機能します。パラメーターとして切り上げたい番号を提供するだけです:
Math.ceil
しかし、いつ番号を切り上げる必要がありますか?一般的な使用法は、何かを保持するために必要なコンテナの数を計算する必要がある場合です。たとえば、プレイリストを含む音楽Webサイトがあるとします。各プレイリストには10曲が含まれています。誰かが82曲をアップロードした場合、作成するプレイリストの数を把握する必要があります。これは、曲の数を10個(各プレイリストの曲の数)で割ることによって行われます。
<code class="language-javascript">Math.floor(2.3); // 向下舍入到2 Math.floor(2.921); // 向下舍入到2 Math.floor(2.5); // 向下舍入到2 Math.floor(PI); Math.floor(E);</code>
を使用すると、8に丸められます...ただし、最後の2曲のプレイリストは作成しません。この場合、任意の残りに余分な容器を提供できるように、常に切り上げる必要があります。
<code class="language-javascript">const fruit = ["?", "?", "?", "?", "?"]; const randomFruit = fruit[Math.floor(Math.random() * fruit.length)];</code>
Math.round
を使用して数字を丸めます
<code class="language-javascript">Math.ceil(2.3); // 向上舍入到3 Math.ceil(2.921); // 向上舍入到3 Math.ceil(2.5); // 向上舍入到3 Math.ceil(PI); Math.ceil(E);</code>です。厳密に言えば、これは丸め機能ではありません。基本的には、次の例に示すように、数字の小数部分を削除し、整数部分のみを残します。
<code class="language-javascript">const PI = Math.PI; const E = Math.E;</code>
一見、Math.trunc
はもちろん、これまでに与えられたすべての例が同じ結果を示しています。ただし、次の例に示すように、負の値がパラメーターとして提供される場合、2つの方法は異なって動作します。
Math.floor
違いが発生します。
<code class="language-javascript">const { PI, E } = Math;</code>
パラメーターが負の場合、Math.floor
と同じ値を
と返します
Math.ceil
Math.trunc
これらの方法はすべて非常に便利ですが、常に整数値を返すという制限があります。特定の小数またはかなりの数字に数字を丸めたい場合はどうなりますか?
<code class="language-javascript">Math.round(2.3); // 因为更接近2,所以向下舍入 Math.round(2.921); // 因为更接近3,所以向上舍入 Math.round(2.5); // 因为正好位于中间,所以向上舍入 Math.round(PI); Math.round(E);</code>の小数
丸い数字
タイプには、これを行うためのいくつかの組み込みの方法があります。それらを見てみましょう。 Math.round
Math
Numberこれは数値的な方法です。つまり、数値自体によって呼び出されます。 10進数を指定された10進数に丸めます。これはパラメーターとして提供されます。
Number.toFixed
として返されることです。この問題を解決することができます。メソッド呼び出しをまた、注:この方法を既に整数である数値に適用しようとすると、単一のポイントのみを使用してメソッドを呼び出すとエラーが表示されます。
<code class="language-javascript">const test1 = 86; const test2 = 93; const test3 = 95; const average = Math.round((test1 + test2 + test3) / 3);</code>ポイントがメソッドコールオペレーターか小数点であるかどうかは明確ではないため、単一のポイントを使用して整数でメソッドを呼び出すことはできません。これを修正するために、整数をブラケットに入れたり、2つのドットを使用して、小数点で数値リテラルを書く代わりにメソッドを呼んでいることを明確に示すことができます。
引数が提供されていない場合、数値は最も近い整数に丸められます(ただし、文字列として返されます):
Number
<code class="language-javascript">Math.floor(2.3); // 向下舍入到2 Math.floor(2.921); // 向下舍入到2 Math.floor(2.5); // 向下舍入到2 Math.floor(PI); Math.floor(E);</code>
これは、
<code class="language-javascript">const fruit = ["?", "?", "?", "?", "?"]; const randomFruit = fruit[Math.floor(Math.random() * fruit.length)];</code>:
を使用して簡単に修正できます
<code class="language-javascript">Math.ceil(2.3); // 向上舍入到3 Math.ceil(2.921); // 向上舍入到3 Math.ceil(2.5); // 向上舍入到3 Math.ceil(PI); Math.ceil(E);</code>
注:あなたが持っている可能性のある問題の詳細については、number()。tofixed()丸めエラー:破損しているが修正可能です。
<code class="language-javascript">const songsPerPlaylist = 10; const numberOfSongs = 82; const numberOfPlaylists = numberOfSongs / songsPerPlaylist;</code>
メソッドと同様に機能しますが、数値を固定数のかなりの数に丸めます。 Number.toPrecision
Number.toFixed
有効な数値を簡単にリマインドする必要がある場合、基本的に最初のゼロ以外の数字のみを使用することを意味します。多くの場合、最終的な答えもゼロで満たされます。たとえば、2つの有意桁に丸められた53,863の数は54,000になります。これは、5と3が最初の2つの非ゼロ番号であり、次の数値は8であるため、上向きに丸みを帯びているためです。丸い値が元の数値の合理的な近似であることを確認するために、最後にゼロを追加する必要があります。
同様の方法で小数を丸めることができます。たとえば、0.00000623978は0.0000062に2つの重要な数字になります。これは、6と2が最初の2つの非ゼロ番号であり、次の数字は3であるため、丸めます。
この方法を使用するには、数字でそれを呼び出して、引数として重要な数の数を提供するだけです(懸念する前に整数をブラケットに配置する必要があることを忘れないでください):
すべての値は文字列として返され、「54000」ではなく「5.4e 4」などの指数表記で使用できることに注意してください。
前述のように、<code class="language-javascript">const PI = Math.PI; const E = Math.E;</code>関数でメソッド呼び出しをラッピングすることにより、数字が返されるようにすることができます:
特定のかなりの数に丸めの一般的な使用は、あなたが大量に作業し、それらがどれだけ大きいかわからないときです。たとえば、最新の投稿が「好まれている」回数を報告するとしたら、最も近い10、100、または1000に丸めましたか?ある程度、それがどれほど人気があるかに依存します。解決策は、それをかなりの数に丸めることです:Number
<code class="language-javascript">const { PI, E } = Math;</code>問題
JavaScript(またはプログラミング言語)の数字を丸めるときに注意すべきことがいくつかあります。ご存知かもしれませんが、コンピューターはすべてのデータ(数字を含む)をバイナリ表現として保存します。 JavaScriptは、数字を32ビットのシングルエシジョンバイナリ値として保存します。
<code class="language-javascript">Math.round(2.3); // 因为更接近2,所以向下舍入 Math.round(2.921); // 因为更接近3,所以向上舍入 Math.round(2.5); // 因为正好位于中间,所以向上舍入 Math.round(PI); Math.round(E);</code>
オブジェクトには、32ビットを使用して表すことができる最も近い数値を返す
と呼ばれる別のメソッドがあります。たとえば、0.6125はバイナリ0.101として正確に表すことができるため、これは同じ値を返します。<code class="language-javascript">const test1 = 86; const test2 = 93; const test3 = 95; const average = Math.round((test1 + test2 + test3) / 3);</code>ただし、上で見たように、0.1を32ビットで正確に表現することはできません。
表現できる最も近い数字を示します:
<code class="language-javascript">const PI = Math.PI; const E = Math.E;</code>ご覧のとおり、
0.1に非常に近いですが、は非常にわずかに高くなっています。ほとんどの実用的な場合、これは問題を引き起こしませんが、いくつかの数字を丸めようとすると、時々奇妙な動作を引き起こします。
<code class="language-javascript">const { PI, E } = Math;</code>これは、3.55が32ビットの正確な表現を使用できないために発生します。
を使用して、実際にどのように表しているかを確認できます。
Math.fround
<code class="language-javascript">Math.round(2.3); // 因为更接近2,所以向下舍入 Math.round(2.921); // 因为更接近3,所以向上舍入 Math.round(2.5); // 因为正好位于中间,所以向上舍入 Math.round(PI); Math.round(E);</code>JavaScriptの丸め数のこれらの問題は頻繁には発生しませんが、特に結果が正確でなければならない場合は、多くの丸めをしている場合は、これらの問題に間違いなく注意を払う必要があります。
数字を丸めるにはどのような方法を使用する必要がありますか?
この記事で説明されているすべての丸め方法を使用すると、どの方法が最適かを尋ねることができます。答えは常に「それは依存します」です。
。負の数を丸めることも計画している場合は、代わりに
を使用することを検討してください。
Math.round
特定の小数またはかなりの数に丸める必要がある場合は、Math.floor
またはMath.ceil
を使用する必要があります。ただし、両方の方法は数字で呼び出され、文字列を返すことに注意してください。 Math.trunc
Number.toFixed
Number.toPrecision
Codepenデモリンク
これらすべての異なる方法では、将来の丸め数に問題はないはずです。
この記事が便利だと思う場合は、これらも気に入っているかもしれません。 JavaScriptデジタル興味深いニュース
クイックヒント:JavaScriptの数値を序数に変換する方法
JavaScriptの丸め数について
FAQ、Math.round()
の違いは何ですか? Math.round(3.14)
最寄りの整数に丸く、Math.round(4.76)
最寄りの整数まで丸くなり、
Math.round()
数値を特定の小数に丸めてもらえますか?はい、Math.floor()
メソッドを使用して、特定の小数の場所に数字を丸くすることができます。たとえば、Math.ceil()
は3.14を取得します。 Math.round()
Math.round()
.5小数部品の数値を処理する方法は? Math.round()
「丸め」ロジックを使用します。つまり、分数部分が正確に.5である場合、最も近い整数に丸くなります。たとえば、Math.round(2.5)
の結果は2であり、Math.round(3.5)
の結果は4です。
Math.round()
を使用して正と負の数を丸くすることはできますか?はい、Math.round()
は正と負の数で動作します。それは通常のように正の数を丸め、負の数をゼロに丸めます。
JavaScriptで丸めエラーが発生していますか?はい、コンピューターでの浮動ポイント操作の仕組みにより、丸めエラーが発生する可能性があります。特に非常に多数または非常に少ない数を扱う場合、潜在的な精度の問題に注意を払うことが重要です。この場合、より正確な算術操作については、decimal.jsのようなライブラリを使用することを検討してください。
以上がJavaScriptの丸め番号のガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。