eql?(p1)
public
Returns true only if obj is a Float with the same value as float.
Contrast this with Float#==, which performs type conversions.
1.0.eql?(1)
The result of NaN.eql?(NaN) is undefined, so an implementation-dependent
value is returned.
Show source
VALUE
rb_float_eql(VALUE x, VALUE y)
{
if (RB_TYPE_P(y, T_FLOAT)) {
double a = RFLOAT_VALUE(x);
double b = RFLOAT_VALUE(y);
if (isnan(a) || isnan(b)) return Qfalse;
if (a == b)
return Qtrue;
}
return Qfalse;
}