JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptで数値を最も近いNの倍数に丸める方法


まず、次のような数値が与えられているとします。

const num = 76;

この数値を丸める際、丸める単位によって結果は以下のように変わります。

  • 10の位(10の倍数)に丸めた場合、結果は 80 になります

  • 100の位(100の倍数)に丸めた場合、結果は 100 になります

  • 1000の位(1000の倍数)に丸めた場合、結果は 0 になります

そこで、第1引数に丸めたい対象の数値を、第2引数に丸める単位(ファクター)を受け取るJavaScript関数を作成する必要があります。この関数は、丸め処理を行った結果を返すように実装します。

コード例

この処理を実装したコードは以下のとおりです。

const num = 76;

const roundOffTo = (num, factor = 1) => {
    const quotient = num / factor;
    const res = Math.round(quotient) * factor;
    return res;
};

console.log(roundOffTo(num, 10));
console.log(roundOffTo(num, 100));
console.log(roundOffTo(num, 1000));

コンソールには以下の出力結果が表示されます。

出力

80
100
0

仕組みの解説

この関数は、次の3つのステップで丸め処理を実現しています。

  1. 商を求める: 元の数値をファクター(丸める単位)で割り、その商を計算します。

  2. 四捨五入する: Math.round() を使って、その商を最も近い整数に丸めます。

  3. スケールを戻す: 丸めた値に再びファクターを掛け合わせ、目的の丸め結果を取得します。

たとえば、76 を10の倍数に丸める場合は、76 ÷ 10 = 7.6 を Math.round() で 8 に丸め、8 × 10 = 80 という結果が得られます。同様に、1000の倍数として丸めると 76 ÷ 1000 = 0.076 が 0 に丸められ、0 × 1000 = 0 となるため、出力は 0 になります。

なお、第2引数の factor にはデフォルト値として 1 が設定されているため、ファクターを省略して呼び出した場合は、数値がそのまま最も近い整数に丸められるという便利な挙動にもなっています。

  1. JavaScriptで日付の「日」を設定する方法|setDate()の使い方を解説

    JavaScriptでは、DateオブジェクトのsetDate()メソッドを使うことで、日付の「日」(1〜31)を設定・変更できます。この記事では、実際のコード例と実行結果をもとに、setDate()の基本的な使い方をわかりやすく解説します。 setDate()メソッドとは setDate()は、Dateオブジェクトの「日」の値だけを変更するためのメソッドです。年や月はそのままに、日にちだけを差し替えたい場合に便利です。引数には1〜31の整数を指定しますが、範囲外の値を渡してもエラーにはならず、自動的に月をまたいだ日付へと調整されます。また、このメソッドは元のDateオブジェクト自体を書き換え

  2. JavaScriptで1からnまでの整数に含まれる「1」の個数を数える方法

    はじめに 本記事では、正の整数を引数として受け取り、1からその数までのすべての正の整数に登場する数字「1」の合計出現回数を求めるJavaScript関数を作成します。対象となる数値自体に「1」が含まれている場合は、その分もカウントに含めます。 問題の例 たとえば、入力として次の数値が与えられたとします。 const num = 31; この場合、期待される出力は次のとおりです。 const output = 14; これは、「1」が以下の数値に出現するためです。 1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 31 これらを順に確認すると、11だ