none
Casas Decimais RRS feed

  • Pergunta

  • Bom dia!

    Muito estranho, estou tentando fazer uma formula pra aplicar um reajuste em uns produtos e o SQL está ignorando as casas decimais.

    Exermplo:

    PRINT (1 + (9 / 100))   -  Resultado 1
    PRINT CAST((1 + (9 / 100)) AS NUMERIC(15, 8))   -  Resultado 1.00000000
    PRINT CONVERT(DECIMAL(18,8), (1 + (9 / 100)))   -  Resultado 1.00000000

    O que pode ser??

    terça-feira, 26 de maio de 2020 14:02

Respostas

  • Bom dia,

    Nos exemplos que você postou o cálculo utiliza números inteiros, então o resultado também é do tipo inteiro, e nos casos em que foi feita a conversão para numeric ou decimal, a conversão está sendo feita depois do cálculo, por isso o resultado continuou sem casas decimais.

    Segue uma sugestão de alternativa para teste:

    PRINT (1.0 + (9 / 100))

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta DaviSaba terça-feira, 26 de maio de 2020 14:35
    terça-feira, 26 de maio de 2020 14:21

Todas as Respostas

  • Bom dia,

    Nos exemplos que você postou o cálculo utiliza números inteiros, então o resultado também é do tipo inteiro, e nos casos em que foi feita a conversão para numeric ou decimal, a conversão está sendo feita depois do cálculo, por isso o resultado continuou sem casas decimais.

    Segue uma sugestão de alternativa para teste:

    PRINT (1.0 + (9 / 100))

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta DaviSaba terça-feira, 26 de maio de 2020 14:35
    terça-feira, 26 de maio de 2020 14:21
  • Tive que usar 

    PRINT (1.0 + (9.0 / 100))

    Isso nunca tinha acontecido, sempre utilizei calculos nos SELECT, mas dessa vez ocorreu, muito estranho ... mas obrigado!

    • Sugerido como Resposta Avatar SQL quinta-feira, 4 de junho de 2020 13:20
    terça-feira, 26 de maio de 2020 14:33