Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Reference
  4. Standard built-in objects
  5. Math
  6. fround()

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 ⁨July 2015⁩.

TheMath.fround() static method returns the nearest32-bit single precision float representation of a number.

Try it

console.log(Math.fround(5.5));// Expected output: 5.5console.log(Math.fround(5.05));// Expected output: 5.050000190734863console.log(Math.fround(5));// Expected output: 5console.log(Math.fround(-5.05));// Expected output: -5.050000190734863

Syntax

js
Math.fround(doubleFloat)

Parameters

doubleFloat

A number.

Return value

The nearest32-bit single precision float representation ofdoubleFloat.

Description

JavaScript uses 64-bit double floating-point numbers internally, which offer a very high precision. However, sometimes you may be working with 32-bit floating-point numbers, for example if you are reading values from aFloat32Array. This can create confusion: checking a 64-bit float and a 32-bit float for equality may fail even though the numbers are seemingly identical.

To solve this,Math.fround() can be used to cast the 64-bit float to a 32-bit float. Internally, JavaScript continues to treat the number as a 64-bit float, it just performs a "round to even" on the 23rd bit of the mantissa, and sets all following mantissa bits to0. If the number is outside the range of a 32-bit float,Infinity or-Infinity is returned.

Becausefround() is a static method ofMath, you always use it asMath.fround(), rather than as a method of aMath object you created (Math is not a constructor).

Examples

Using Math.fround()

The number 1.5 can be precisely represented in the binary numeral system, and is identical in 32-bit and 64-bit:

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

However, the number 1.337 cannot be precisely represented in the binary numeral system, so it differs in 32-bit and 64-bit:

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

21502^150 is too big for a 32-bit float, soInfinity is returned:

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

Specifications

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

Browser compatibility

See also

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp