SQL Server Strange Ceiling () Verhalten

Kann jemand die folgenden Ergebnisse in SQL Server erklären? Ich bin ratlos.

declare @mynum float = 8.31

select ceiling( @mynum*100)

Ergebnisse in831

declare @mynum float = 8.21

select ceiling( @mynum*100)

Ergebnisse in822

Ich habe eine ganze Reihe von Zahlen getestet (inSQL Server 2012). Einige nehmen zu, während andere gleich bleiben. Ich verstehe nicht, warum Decke einige von ihnen unterschiedlich behandelt. Wechsel von einemfloat zu einerdecimal(18,5) scheint das Problem zu beheben, aber ich bin mir sicher, dass es andere Auswirkungen geben kann, die mir fehlen. Alle Erklärungen würden helfen.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage