2.3 KiB
2.3 KiB
modf
Decompose a double-precision floating-point number into integral and fractional parts.
Usage
var modf = require( '@stdlib/math/base/special/modf' );
modf( [out,] x )
Decomposes a double-precision floating-point number into integral and fractional parts, each having the same type and sign as x
.
var parts = modf( 3.14 );
// returns [ 3.0, 0.14000000000000012 ]
parts = modf( +0.0 );
// returns [ +0.0, +0.0 ]
parts = modf( -0.0 );
// returns [ -0.0, -0.0 ]
parts = modf( Infinity );
// returns [ Infinity, +0.0 ]
parts = modf( -Infinity );
// returns [ -Infinity, -0.0 ]
parts = modf( NaN );
// returns [ NaN, NaN ]
To avoid unnecessary memory allocation, the function supports providing an output (destination) object.
var Float64Array = require( '@stdlib/array/float64' );
var out = new Float64Array( 2 );
var parts = modf( out, 3.14 );
// returns <Float64Array>[ 3.0, 0.14000000000000012 ]
var bool = ( parts === out );
// returns true
Examples
var randu = require( '@stdlib/random/base/randu' );
var modf = require( '@stdlib/math/base/special/modf' );
var parts;
var x;
var i;
for ( i = 0; i < 100; i++ ) {
x = (randu()*1000.0) - 500.0;
parts = modf( x );
console.log( 'modf(%d) => integral: %d. fraction: %d.', x, parts[ 0 ], parts[ 1 ] );
}