When people compare numbers, they usually expect a simple rule: same value means equal. For floating-point numbers (Half, float, and double), there are actually two useful notions of equality in .NET: IEEE comparison semantics, used by == equivalence semantics for .NET objects, used by Equals At first sight this looks inconsistent. In practice, each one solves a different problem. Quick behavior matrix… [read more]