/* * call-seq: * flt.finite? -> true or false * * Returns <code>true</code> if <i>flt</i> is a valid IEEE floating * point number (it is not infinite, and <code>nan?</code> is * <code>false</code>). * */ static VALUE flo_is_finite_p(num) VALUE num; { double value = RFLOAT(num)->value; #if HAVE_FINITE if (!finite(value)) return Qfalse; #else if (isinf(value) || isnan(value)) return Qfalse; #endif return Qtrue; }