One thing I discovered is that if I attempt to save the value 9007199254740988 to a SQL Server BigInt field, the actual value that my app saves to the database is 9007199254740990.
This loss of precision surprised me. Although I'd expect floating point numbers to behave in this way, I thought that an integer data type should allow me to save and retrieve exact values.
Can someone confirm if this is a bug or expected behaviour?