Movatterモバイル変換


[0]ホーム

URL:


  1. 開発者向けのウェブ技術
  2. JavaScript
  3. JavaScript リファレンス
  4. 標準組み込みオブジェクト
  5. Math
  6. floor()

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。

View in EnglishAlways switch to English

Math.floor()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨2015年7月⁩.

Math.floor() は静的メソッドで、与えられた数値以下の最大の整数を返します。

試してみましょう

console.log(Math.floor(5.95));// 予想される結果: 5console.log(Math.floor(5.05));// 予想される結果: 5console.log(Math.floor(5));// 予想される結果: 5console.log(Math.floor(-5.05));// 予想される結果: -6

構文

js
Math.floor(x)

引数

x

数値です。

返値

x 以下の最大の整数です。これは-Math.ceil(-x) と同じ値です。

解説

floor()Math オブジェクトの静的なメソッドなので、自ら生成したMath オブジェクトのメソッドとしてではなく、常に、Math.floor() として使用するようにしてください (Math のコンストラクターはありません)。

Math.floor() の使用

js
Math.floor(-Infinity); // -InfinityMath.floor(-45.95); // -46Math.floor(-45.05); // -46Math.floor(-0); // -0Math.floor(0); // 0Math.floor(4); // 4Math.floor(45.05); // 45Math.floor(45.95); // 45Math.floor(Infinity); // Infinity

十進数の丸め

この例では、decimalAdjust() というメソッドを実装します。これは、Math.floor()Math.ceil()Math.round() の拡張メソッドです。Math の 3 つの関数は常に数値を小数点以下の桁数に調整しますが、decimalAdjustexp 引数を受け入れ、数値を調整する小数点以下の桁数を指定します。例えば、-1 は小数点以下 1 桁("× 10-1" のように)を意味します。さらに、roundfloorceil のいずれかの調整方法をtype 引数により選択できます。

これは、数値に 10 の累乗を乗算し、その結果を最も近い整数に丸め、さらに 10 の累乗で割ることで行います。より精度を維持するために、Number のtoString() メソッドを利用します。このメソッドは、大きな数値や小さな数値を科学記法(6.02e23 など)で表します。

js
/** * 数値を指定された桁数に調整します。 * * @param {"round" | "floor" | "ceil"} type 調整する型。 * @param {number} value 数値。 * @param {number} exp 指数する(補正の底の10の対数)。 * @returns {number} 補正値。 */function decimalAdjust(type, value, exp) {  type = String(type);  if (!["round", "floor", "ceil"].includes(type)) {    throw new TypeError(      "小数点調整の型は、'round'、'floor'、'ceil' のいずれかである必要があります。",    );  }  exp = Number(exp);  value = Number(value);  if (exp % 1 !== 0 || Number.isNaN(value)) {    return NaN;  } else if (exp === 0) {    return Math[type](value);  }  const [magnitude, exponent = 0] = value.toString().split("e");  const adjustedValue = Math[type](`${magnitude}e${exponent - exp}`);  // Shift back  const [newMagnitude, newExponent = 0] = adjustedValue.toString().split("e");  return Number(`${newMagnitude}e${Number(newExponent) + exp}`);}// Decimal roundconst round10 = (value, exp) => decimalAdjust("round", value, exp);// Decimal floorconst floor10 = (value, exp) => decimalAdjust("floor", value, exp);// Decimal ceilconst ceil10 = (value, exp) => decimalAdjust("ceil", value, exp);// Roundround10(55.55, -1); // 55.6round10(55.549, -1); // 55.5round10(55, 1); // 60round10(54.9, 1); // 50round10(-55.55, -1); // -55.5round10(-55.551, -1); // -55.6round10(-55, 1); // -50round10(-55.1, 1); // -60// Floorfloor10(55.59, -1); // 55.5floor10(59, 1); // 50floor10(-55.51, -1); // -55.6floor10(-51, 1); // -60// Ceilceil10(55.51, -1); // 55.6ceil10(51, 1); // 60ceil10(-55.59, -1); // -55.5ceil10(-59, 1); // -50

仕様書

Specification
ECMAScript® 2026 Language Specification
# sec-math.floor

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp