SQL tem três funções que podem arredondar os valores para um número específico de casas decimais. Você pode usar essas funções para resolver uma variedade de problemas relacionados com o banco de dados, variando de livrar-se de frações de tostões sobre transações financeiras para regularizar entradas de dados a partir de vários instrumentos científicos. Se você é novo no SQL , as suas funções de arredondamento pode parecer um pouco estranho , e pode causar alguns problemas de adaptação . Arredondamento convencional
SQL do " ROUND ()" função recebe um valor existente e arredonda para o número especificado de casas decimais . O formato é o seguinte :
ROUND ( [ valor ], [ n] , [1] ) )
Aqui ", [ valor ]" é um valor decimal , e " [ n ] " é o número de dígitos que o valor deve ser arredondado para . Arredondamento convencional arredonda valores de 0,5 ou maior up , e os valores de 0,49 e mais abaixo . Definir o valor para "0" rodadas para valores inteiros ; definindo o valor como "-1" rodadas para o múltiplo mais próximo de 10. O " ROUND ()" terceiro parâmetro da função, " [1], " trunca o número para o número especificado de casas decimais se definido como qualquer valor diferente de zero . Uma fonte significativa de problemas de arredondamento inesperados vêm quando , devido a um erro de digitação , o terceiro parâmetro é definido eo número trunca em vez de rodadas.
Piso e teto
SQL usa a função " FLOOR ( ) " para forçar os valores para arredondar para o valor mais próximo , eo " TETO ()" função para arredondar para o valor mais próximo. Ambas as funções retornam valores inteiros , mesmo usando um tipo de dados float com um número de casas decimais especificado retorna um valor com zeros depois do ponto decimal
tipos de dados recomendados
< . br>
a razão mais provável para erros de arredondamento em SQL decorre de usar um tipo de dados inesperado para a expressão numérica na função " ROUND ()" , ou de utilizar " FLOOR ( )" ou " TETO ( ) " e com a expectativa de obter um tipo de dados decimal , ao invés de um número inteiro. Se a sua função SQL está dando resultados inesperados arredondamento , certifique-se de que a função " CAST ( ) " que está especificando o número tem o tipo de dados definido como " inteiro ", " decimal ", " dinheiro " ou " smallmoney . " o " decimal " tipo de dados é limitada a apenas 38 dígitos no total , o que é uma limitação que poucas pessoas fora da comunidade científica . correr em
outros tipos de dados < br >
Dois tipos de dados retornar valores numéricos que podem causar problemas com a função " ROUND ()" . Trata-se de "real" e tipos de números "flutuar" em SQL , utilizada para gravar muito pequenas frações que ficam cercados pela maioria das variedades de SQL no último ponto decimal que o tipo de dados indicado; algumas implementações SQL e volta para zero, arredondar para baixo ou convencionalmente rodada. Quando você tiver dados que estão sendo alimentados em um banco de dados SQL que poderia estar usando as funções "real " ou " flutuar " tipos de dados , use o " CAST ( )" ou " CONVERT ()" para convertê-los para o " decimal " tipo de dados.