none
Mostrar apenas uma casa após a vírgula - Consulta RRS feed

  • Pergunta

  • Pessoal,

     

    tenho um select que retorna um valor decimal, por exemplo 4,95000000000, e quero que apareça apenas 4,9.

    Usando a função str, ele funciona se eu ponho str(valor,4,2), ou seja, 2 casas depois da vírgula, ele fica 4,95. Mas se

    eu ponho  str(valor,4,1), ele arredonda o valor para 5.0. O round tb arredonda, não funciona. Alguém sabe como fazer isso?

     

    Agradecido,

     

    Diego A.

     

    Select str(CONVERT(DECIMAL(10,1),(Select nr_animal From AnimalDead Where data = (Select max(data) From Animal

    Where vl_lost = 'R' And cd_animal = 94) And cd_animal = 94) * 100) /

    (Select animal From Animal1 Where cd_animal = 94),4,2) + '%' percentual

    From Animal

    Where cd_animal = 94

    segunda-feira, 15 de outubro de 2007 13:55

Respostas

  •  

    Apenas junte o meu exemplo com o seu:

     

    Code Block

    SELECT CONVERT (DECIMAL(10,1), ROUND(4.95000000000, 1, 1));

     

     

     

     

     

    Abraço
    segunda-feira, 15 de outubro de 2007 15:29

Todas as Respostas

  •  

    Olá Diego,

     

    Veja este exemplo, deve resolver seu problema:

     

     

    Code Block

    SELECT ROUND(4.95000000000, 1, 1);

    GO

     

     

     

     

     

    Qualquer coisa retorne.

     

     

    Abraço

    segunda-feira, 15 de outubro de 2007 15:02
  • Alexandre,

     

    na verdade ele retornou este valor: 4.90000000000, e o que eu precisava era 4.9. Estou usando sqlserver 2005.

    Obrigado pela ajuda.

     

    Abraço

    segunda-feira, 15 de outubro de 2007 15:24
  •  

    Apenas junte o meu exemplo com o seu:

     

    Code Block

    SELECT CONVERT (DECIMAL(10,1), ROUND(4.95000000000, 1, 1));

     

     

     

     

     

    Abraço
    segunda-feira, 15 de outubro de 2007 15:29
  • Diogo,

     

    Desta forma, você estará convertendo um valor decimal para um valor ponto flutuante, por isso fica mais fácil fazer este tipo de arredondamento.

     

    Mas para ilustrar melhor a sua dúvida, veja estes outros exemplos:

     

    Code Block

    Arredondamento para cima:

    Select Ceiling(4.95000000000)

     

    Arredondamento para baixo:

    Select Floor(4.95000000000)

     

     

     

     

    segunda-feira, 15 de outubro de 2007 15:55
  • Funcionou Alexandre, era isso mesmo, obrigado.

    Interessante essas funções Júnior, nunca tinha visto, e acabei usando em outra parte do programa, obrigado.

     

    Diego A.
    segunda-feira, 15 de outubro de 2007 17:27
  • Diego,

     

    Obrigado pelo retorno.

    segunda-feira, 15 de outubro de 2007 17:51
  • Olá Pessoal!

    Aproveitando o gancho!

    Como faço para pegar apenas o valor após a virgula no SQL Server 2005

    Ex: 

    Meu select está retornando em determinada coluna, valores como:

     3.64

    Preciso pegar apenas o número 64 após o ponto para fazer um cálculo com o mesmo.

    Existe alguma função para isso? Como faço?


    Desde já muito Obrigado

    Wander Martins




    segunda-feira, 8 de setembro de 2008 14:20
  • Bom Dia,

     

    Tente o seguinte:

     

    Code Snippet

    DECLARE @VAL NUMERIC(10,5)

    SET @VAL = 3.64

    SELECT @VAL - CAST(@VAL AS INT)

     

     

    [ ]s,

     

    Gustavo

    segunda-feira, 8 de setembro de 2008 14:24
  • Valeu Gustavo, muito  Obrigado!

    Wander Martins
    terça-feira, 23 de setembro de 2008 18:29