v.21.6Backward Incompatible Changes
Change in Integer and Floating Point Comparison Behavior for Non-Representable Values
Change comparison of integers and floating point numbers when integer is not exactly representable in the floating point data type. In new version comparison will return false as the rounding error will occur. Example:9223372036854775808.0 != 9223372036854775808, because the number9223372036854775808is not representable as floating point number exactly (and9223372036854775808.0is rounded to9223372036854776000.0). But in previous version the comparison will return as the numbers are equal, because if the floating point number9223372036854776000.0get converted back to UInt64, it will yield9223372036854775808. For the reference, the Python programming language also treats these numbers as equal. But this behaviour was dependend on CPU model (different results on AMD64 and AArch64 for some out-of-range numbers), so we make the comparison more precise. It will treat int and float numbers equal only if int is represented in floating point type exactly. #22595 (alexey-milovidov).