isSameValueZero

Test if two double-precision floating-point numbers are the same value.

Usage

var isSameValueZero = require( '@stdlib/number/float64/base/assert/is-same-value-zero' );

isSameValueZero( a, b )

Tests if two double-precision floating-point numbers a and b are the same value.

var bool = isSameValueZero( 3.14, 3.14 );
// returns true

bool = isSameValueZero( 5.0, 3.0 );
// returns false

In contrast to the strict equality operator ===, the function treats NaNs as the same value.

var bool = ( NaN === NaN );
// returns false

bool = isSameValueZero( NaN, NaN );
// returns true

In contrast to the SameValue Algorithm (as specified in ECMAScript 5), the function does not distinguish between +0 and -0.

var bool = ( 0.0 === -0.0 );
// returns true

bool = isSameValueZero( 0.0, -0.0 );
// returns true

bool = isSameValueZero( -0.0, 0.0 );
// returns true

Examples

var isSameValueZero = require( '@stdlib/number/float64/base/assert/is-same-value-zero' );

var bool = isSameValueZero( 3.14, 3.14 );
// returns true

bool = isSameValueZero( 0.0, 0.0 );
// returns true

bool = isSameValueZero( -0.0, 0.0 );
// returns true

bool = isSameValueZero( NaN, NaN );
// returns true

C APIs

Usage

#include "stdlib/number/float64/base/assert/is_same_value_zero.h"

stdlib_base_float64_is_same_value_zero( a, b )

Tests if two double-precision floating-point numbers a and b are the same value.

#include <stdbool.h>

bool v = stdlib_base_float64_is_same_value_zero( 3.14, 3.14 );
// returns true

v = stdlib_base_float64_is_same_value_zero( 0.0, -0.0 );
// returns true

The function accepts the following arguments:

  • a: [in] double first input value.
  • b: [in] double second input value.
bool stdlib_base_float64_is_same_value_zero( const double a, const double b );

Examples

#include "stdlib/number/float64/base/assert/is_same_value_zero.h"
#include <stdbool.h>
#include <stdio.h>

int main( void ) {
    const double a[] = {
        5.0,
        -2.0,
        0.0,
        0.0/0.0
    };
    const double b[] = {
        5.0,
        2.0,
        -0.0,
        0.0/0.0
    };

    bool v;
    int i;
    for ( i = 0; i < 4; i++ ) {
        v = stdlib_base_float64_is_same_value_zero( a[ i ], b[ i ] );
        printf( "Same value? %s\n", ( v ) ? "True" : "False" );
    }
}
Did you find this page helpful?