Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Comportamento de teto estranho () do SQL Server


Eu acho que isso é chamado de precisão flutuante. Você pode encontrá-lo em quase todas as linguagens de programação e também no Banco de Dados. Isso ocorre porque os dados são armazenados apenas com alguma precisão e, na verdade, o que você define como 8.31 provavelmente não é 8.31 mas por exemplo 8.31631312381813 e quando multiplicá-lo e ceil, pode fazer com que apareçam valores diferentes.

Em página de documentação do servidor SQL você pode ler:

Em outros sistemas de banco de dados existe o mesmo problema. Por exemplo, no site do mysql você pode ler: