To my surprise, I run the following queries in SQL Server 2014 and each returns a different result, as shown in [this db<>fiddle](https://dbfiddle.uk/?rdbms=sqlserver_2014&fiddle=8f9376dd165d3d2da83114bdb7a19cb3)... This Select convert(numeric(19,2),convert(float,9.76499999999999999999999999)) gives *9.76*. And this Select convert(numeric(19,2),convert(float,9.7649999999999999999999)) gives *9.77*. Can someone explain why one truncates while the other rounds up? This is causing a nightmare for me. I wish I could just stop using floats but they are all over our application, which has been ongoing for over 30 years.