Movatterモバイル変換


[0]ホーム

URL:


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

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

View in EnglishAlways switch to English

Math.fround()

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.fround() は静的メソッドで、ある数値を表す最も近い32 ビット単精度浮動小数点数を返します。

試してみましょう

console.log(Math.fround(5.5));// 予想される結果: 5.5console.log(Math.fround(5.05));// 予想される結果: 5.050000190734863console.log(Math.fround(5));// 予想される結果: 5console.log(Math.fround(-5.05));// 予想される結果: -5.050000190734863

構文

js
Math.fround(doubleFloat)

引数

doubleFloat

数値です。

返値

doubleFloat の最も近い32 ビット単精度浮動小数点数の表現です。

解説

JavaScript は内部的に 64 ビットの倍精度浮動小数点数を使用しており、非常に高い精度を提供しています。しかし、例えばFloat32Array から値を読み込む場合など 32 ビットの浮動小数点数を扱うことがあるかもしれません。これは混乱を招く可能性があります。 64 ビットの浮動小数点数と 32 ビットの浮動小数点数が等しいかどうかをチェックすると、一見同じように見える数値であっても失敗することがあります。

これを解決するには、Math.fround() を使用して、 64 ビット浮動小数点数を 32 ビットの浮動小数点数にキャストすることができます。内部的には、 JavaScript は数値を 64 ビットの浮動小数点数として扱い続けますが、仮数の 23 番目のビットに「偶数への丸め」を実行し、それに続く仮数ビットをすべて 0 に設定します。数値が 32 ビットの浮動小数点数の範囲外の場合は、Infinity または-Infinity が返されます。

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

Math.fround() の使用

1.5 という数値は二進数で正確に表すことができ、32 ビットと 64 ビットとで同じになります。

js
Math.fround(1.5); // 1.5Math.fround(1.5) === 1.5; // true

しかし、 1.337 という数値は二進数では正確に表すことができず、32 ビットと 64 ビットとで異なります。

js
Math.fround(1.337); // 1.3370000123977661Math.fround(1.337) === 1.337; // false

21502^150 は 32 ビット浮動小数点では大きすぎるため、Infinity が返されます。

js
2 ** 150; // 1.42724769270596e+45Math.fround(2 ** 150); // Infinity

仕様書

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

ブラウザーの互換性

関連情報

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp