eql?(p1)
Returns true only if obj is a Float with the same value as flt. Contrast this with Float#==, which performs type conversions.
1.0.eql?(1) #=> false
static VALUE flo_eql(VALUE x, VALUE y) { if (TYPE(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; }