Usuário com melhor resposta
Ignorar uma qtde de casas decimais sem arredondar.

Pergunta
-
Caros companheiros, minha questão é a seguinte:
gostaria de saber se existe algum meio rápido para ignorar um certo número de casas decimais, sem arredondar ...
o valor que tenho em um campo de uma tabela eh, por exemplo: 172.4389
porém, ao final de alguns cálculos com este número, eu preciso ficar com ele na tabela com apenas 2 casas decimais, ou seja, apenas 172.43, sem arredondar para 172.44.
o tipo de campo que abriga este número eh DECIMAL(18,4) ... eu precisava que ele ficasse como DECIMAL(18,2), porém quando modifico o tipo de campo ele arredonda o número com citado acima, porém eu preciso que ele ignore os números das demais casa decimais e não arredonde.
alguma sugestão?
Respostas
Todas as Respostas
-
Olá Anderson!
Você pode fazer isso convertendo primeiro para texto, depois cortando esse texto, veja o exemplo:
Code Snippetdeclare
@v decimal (18,4), @v2 decimal (18,2)set
@v = 172.4389select
@v2 = substring (convert (varchar, @v), 1, len (convert (varchar, @v)) - 2)select
@v2Qualquer dúvida, retorne.
Abraço
-
Olá Alexandre!
Fico muito grato pela atenção dada à questão ... na verdade, eu já tinha conseguido chegar em algo assim mesmo ... se não tiver outro jeito, vou acabar fazendo como vc me sugeriu, porém eu estava pensando se o SQL Server 2000 não possúi nenhuma variável de ambiente ou qq coisa nesse sentido q impedisse o arredondamento automático dos valores ...
Sabe de alguma coisa nesse sentido ? a coisa iria ficar mais confortável pra mim, pq esse situação que citei eh feita com certa frequencia por aqui ...
Grato pela atenção, mais uma vez. -
-
Anderson,
Concordo com o Alexandre, o SQL Server trabalha para realizar a conversão de valores com casas decimais com o objetivo de retornar o valor da melhor forma, ou seja, o mais preciso possível.
Por isso, muitas vezes a conversão é realizada e o retorno de casas decimais é retornada.
Analisando o exemplo do Alexandre, eu também não conheço outra alternativa que resolva melhor a sua dúvida, com certeza esta solução poderá ajudar.
-
-
-