Probably historical. Back before Int64 was a thing, Double was the largest integer you could represent, 54 bits. I have a lot of code that uses Double for integer values just for that reason. Double does not necesarily have to have a decimal component.

If a double contains an integer value, with no fractional component, the comparison is exact. It’s only when you have a fractional component that you encounter the slight difference.

And this is why I understand Robert’s concern.
We have integers which are limited in size, and we have doubles, which are a problem for things like precision. Which data type would correspond to “an integer without limit”/“a double without decimal”? That would be the ideal type in this case.

And it takes time to convert a double to an integer and then you’re likely to implicitly need to convert it back again if you’d used that result in an expression with any other double elements.

And you CAN use equality comparison of rounded doubles for any values less than 9007199254740993. The smallest positive integral value not representable by a 64bit IEEE double is 9007199254740993.