diff --git a/src/math/bits.go b/src/math/bits.go index c5cb93b1594..3716a411f4f 100644 --- a/src/math/bits.go +++ b/src/math/bits.go @@ -48,7 +48,12 @@ func IsInf(f float64, sign int) bool { // To avoid the floating-point hardware, could use: // x := Float64bits(f); // return sign >= 0 && x == uvinf || sign <= 0 && x == uvneginf; - return sign >= 0 && f > MaxFloat64 || sign <= 0 && f < -MaxFloat64 + if sign == 0 { + f = Abs(f) + } else if sign < 0 { + f = -f + } + return f > MaxFloat64 } // normalize returns a normal number y and exponent exp