How can I test for negative zero?

Here’s a grotty hack way of doing it:

private static readonly long NegativeZeroBits =
    BitConverter.DoubleToInt64Bits(-0.0);

public static bool IsNegativeZero(double x)
{
    return BitConverter.DoubleToInt64Bits(x) == NegativeZeroBits;
}

Basically that’s testing for the exact bit pattern of -0.0, but without having to hardcode it.

Leave a Comment