Convert a half-precision floating-point number to a signed 32-bit integer.
var float16ToInt32 = require( '@stdlib/number/float16/base/to-int32' );Converts a half-precision floating-point number to a signed 32-bit integer.
var float64ToFloat16 = require( '@stdlib/number/float64/base/to-float16' );
var y = float16ToInt32( float64ToFloat16( 4294967295.0 ) );
// returns 0
y = float16ToInt32( float64ToFloat16( 3.14 ) );
// returns 3
y = float16ToInt32( float64ToFloat16( -3.14 ) );
// returns -3
y = float16ToInt32( float64ToFloat16( NaN ) );
// returns 0
y = float16ToInt32( float64ToFloat16( Infinity ) );
// returns 0
y = float16ToInt32( float64ToFloat16( -Infinity ) );
// returns 0var uniform = require( '@stdlib/random/array/uniform' );
var map = require( '@stdlib/array/base/map' );
var naryFunction = require( '@stdlib/utils/nary-function' );
var pickArguments = require( '@stdlib/utils/pick-arguments' );
var logEachMap = require( '@stdlib/console/log-each-map' );
var float64ToFloat16 = require( '@stdlib/number/float64/base/to-float16' );
var float16ToInt32 = require( '@stdlib/number/float16/base/to-int32' );
// Generate an array of random numbers:
var f64 = uniform( 100, 0.0, 100.0, {
'dtype': 'float64'
});
// Convert each value to a half-precision floating-point number:
var f16 = map( f64, naryFunction( float64ToFloat16, 1 ) );
// Convert each half-precision floating-point number to the nearest signed 32-bit integer:
logEachMap( 'float16: %f => int32: %d', f16, pickArguments( float16ToInt32, [ 1 ] ) );