public override bool Equals(object obj) { if (!(obj is Double)) return false; double x = (obj as Double).val; if (System.Double.IsNaN(val)) return System.Double.IsNaN(x); return val == x; }