none
Cálculo em C# diferente do Excel RRS feed

  • Pergunta

  • Boa tarde,

    Tenho a seguinte conta em Excel:
    (10000*(1/2)/100)/100*8,27 = 4,14

    Aplicando em C# a mesma dá resultado 0, segue a formula:
    double QuantityToBuy = Math.Round((double)((10000*(1/2)/100)/100*8.27),2);

    Alguém consegue me ajudar? o Objectivo é ficar com 2 casas decimais.

    Obrigado!

    quarta-feira, 23 de outubro de 2019 17:48

Respostas

  • Boa tarde DelTrader,

    O problema acontece na divisão de dois números inteiros [...] *(1/2) [...]
    Quando se divide dois números inteiros, o resultado também vai ser inteiro, nesse caso "0". Você pode resolver ou fazendo a conversão para um tipo decimal, ou apenas acrescentando um .0 que o sistema já faz essa conversão.

    double QuantityToBuy = Math.Round((double)((10000*((float)1/2)/100)/100*8.27),2);

    ou

    double QuantityToBuy = Math.Round((double)((10000*(1.0/2)/100)/100*8.27),2);

    Espero ter ajudado.

    • Marcado como Resposta DelTrader quarta-feira, 23 de outubro de 2019 18:06
    quarta-feira, 23 de outubro de 2019 18:03

Todas as Respostas

  • Boa tarde DelTrader,

    O problema acontece na divisão de dois números inteiros [...] *(1/2) [...]
    Quando se divide dois números inteiros, o resultado também vai ser inteiro, nesse caso "0". Você pode resolver ou fazendo a conversão para um tipo decimal, ou apenas acrescentando um .0 que o sistema já faz essa conversão.

    double QuantityToBuy = Math.Round((double)((10000*((float)1/2)/100)/100*8.27),2);

    ou

    double QuantityToBuy = Math.Round((double)((10000*(1.0/2)/100)/100*8.27),2);

    Espero ter ajudado.

    • Marcado como Resposta DelTrader quarta-feira, 23 de outubro de 2019 18:06
    quarta-feira, 23 de outubro de 2019 18:03
  • Amigo, muito, mas mesmo muito obrigado !!!

    Situação resolvida !!

    Perfeito
    quarta-feira, 23 de outubro de 2019 18:06