Contente
A linguagem SQL automaticamente arredonda números se a coluna da tabela na qual você irá salvar permite apenas uma certa precisão de casas decimais. É possível trabalhar com problemas de precisão usando a função "round" (arredondamento) do SQL. Esta função permite controlar o modo como o SQL armazena os valores numéricos nas tabelas do banco.
Saiba como arredondar números no SQL (Hemera Technologies/AbleStock.com/Getty Images)
Problema
Você notará o problema de arredondamento do SQL quando olhar os dados nas tabelas. O valor numérico exibido não é o mesmo que você salvou através do comando "insert" (inserir). Os tipos de dados das colunas SQL permitem definir a precisão do ponto decimal. Se deseja ter apenas duas casas decimais e tentar salvar um número com três, o SQL arredondará o valor.
Estrutura da tabela
Você pode alterar o tipo de dado de uma coluna utilizando um editor de tabelas SQL. É possível editar suas tabelas no Microsoft SQL Server Management Studio, que vem incluso com o SQL Server. Clique com o botão direito na tabela e escolha "Modify" (Modificar). Selecione a precisão na lista de tipo de dado da coluna para aumentar o número de casas decimais e corrigir o problema de arredondamento.
Função "Round" (Arredondamento)
Se você não quer modificar o tipo de dado da tabela, use a função de arredondamento para alterar o comportamento de armazenamento numérico. Arredonde para cima, para baixo ou deixe a função realizar o arredondamento padrão de valores decimais. Por exemplo, o seguinte código arredonda para cima:
round(column, 2, -1)
Essa função arredonda em duas casas decimas, sempre para cima. Retirar o parâmetro "-1" faz com que o SQL execute o arredondamento padrão, ou seja, para cima se o valor for maior ou igual a "5" e para baixo se o valor for menor.
Considerações
Quando altera o comportamento de arredondamento no SQL, você também deve verificar qualquer coluna que tenha um somatório de números arredondados. Essa coluna terá um valor incorreto, então será necessário recalcular o somatório para corrigir possíveis erros.