2.3 KiB
2.3 KiB
isSafeInteger
Test if a finite double-precision floating-point number is a safe integer.
Usage
var isSafeInteger = require( '@stdlib/math/base/assert/is-safe-integer' );
isSafeInteger( x )
Tests if a finite double-precision floating-point number is a safe integer
.
var bool = isSafeInteger( 1.0 );
// returns true
Notes
-
An integer valued number is "safe" when the number can be exactly represented as a double-precision floating-point number. For example,
var MAX_SAFE_INTEGER = require( '@stdlib/constants/float64/max-safe-integer' ); // returns 9007199254740991 var x = 9007199254740992; // returns 9007199254740992 var y = 9007199254740993; // returns 9007199254740992 var bool = ( x === y ); // returns true
In this example,
x
andy
should be distinct, but they are not due to constraints imposed by storing numeric values in double-precision floating-point format. "Safe" integers are thus double-precision floating-point numbers having integer values with unequivocal binary representations.
Examples
var isSafeInteger = require( '@stdlib/math/base/assert/is-safe-integer' );
var bool = isSafeInteger( -5.0 );
// returns true
bool = isSafeInteger( 2.0e200 );
// returns false
bool = isSafeInteger( 3.14 );
// returns false
bool = isSafeInteger( NaN );
// returns false