none
Divisão em query retorna zero RRS feed

  • Pergunta

  • Srs. uma duvida

    tenho uma formula em um update  que retorna zero, vamos ver se algum sabe o porque.

    Select A = (1/30)

    Retorno = 0

    Select A = (1.0/30.0)

    Retorno = 0.033333

    Alguém sabe me dizer o porque isso acontece, se eu terei sempre que colocar o .0 na frente?


    Fabiano Pires

    quinta-feira, 13 de julho de 2017 18:40

Respostas

  • por causa do cast implicito do tipo de dados INT  ,como não existe o valor inteiro 0.03333 e feito um Cast para 0 implicitamente

    isso e visto em varios casos, por esse motivo em uma divisão de numeros inteiros sempre coloque o cast para decimal

    exemplo

    SELECT  2/3
    
    SELECT CAST(2 AS DECIMAL(18,2)) / CAST(3 AS DECIMAL(18,2))
    
    


    Wesley Neves - Brasilia-DF

     
    wesley.si.neves@gmail.com
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"




    Wesley Neves

    • Marcado como Resposta Fabiano Pires quinta-feira, 13 de julho de 2017 19:36
    quinta-feira, 13 de julho de 2017 19:06

Todas as Respostas

  • por causa do cast implicito do tipo de dados INT  ,como não existe o valor inteiro 0.03333 e feito um Cast para 0 implicitamente

    isso e visto em varios casos, por esse motivo em uma divisão de numeros inteiros sempre coloque o cast para decimal

    exemplo

    SELECT  2/3
    
    SELECT CAST(2 AS DECIMAL(18,2)) / CAST(3 AS DECIMAL(18,2))
    
    


    Wesley Neves - Brasilia-DF

     
    wesley.si.neves@gmail.com
    MTA-SQL Server
    MTA- Web Development
    Analista Desenvolvedor.NET
    Pós-Graduando em Banco de Dados 
    "Se a resposta for útil ou ajudar ,não esqueça de marcar"




    Wesley Neves

    • Marcado como Resposta Fabiano Pires quinta-feira, 13 de julho de 2017 19:36
    quinta-feira, 13 de julho de 2017 19:06
  • obrigado.

    Fabiano Pires

    quinta-feira, 13 de julho de 2017 19:36