Comportamiento extraño del techo () de SQL Server
¿Alguien puede explicar los siguientes resultados en SQL Server? Estoy perplejo.
declare @mynum float = 8.31
select ceiling( @mynum*100)
Resultados en831
declare @mynum float = 8.21
select ceiling( @mynum*100)
Resultados en822
He probado un rango completo de números (enSQL Server 2012
) Algunos aumentan mientras que otros permanecen igual. No entiendo por qué el techo trata a algunos de ellos de manera diferente. Cambio de unfloat
a undecimal(18,5)
parece solucionar el problema, pero desconfío de que pueda haber otras repercusiones. Cualquier explicación ayudaría.