none
Descobrir diferença de casas decimais - Trabalhando com valores em reais RRS feed

  • Pergunta

  • Olá,

    Trabalhando com valores em reais, como eu posso calcular se o Valor 1 tem centavos de diferença do Valor 2?

    Por exemplo:

    Valor1 = 326,77
    Valor2 = 326,78
    ValorDiferenca = ?

    Se valorDiferenca tiver uma diferença maior que 10 centavos, emitir um system.console.writeLine.

    Como posso calcular essa condição das casas decimais?

    Att,
    Rafael 
    quarta-feira, 8 de julho de 2015 18:10

Respostas

  • Olá, também pode ser feito utilizando a classe Math (Math.Abs)

    float valor1 = 10.00f;
    float valor2 = 10.11f;
    
    float resultado = valor1 - valor2;
    float resultado2 = valor2 - valor1;
    
    if(Math.Abs(resultado) > 0.10f)
        Console.WriteLine("Maior que 10 centavos.");
    
    if (Math.Abs(resultado2) > 0.10f)
        Console.WriteLine("Maior que 10 centavos.");



    Microsoft Innovation Center - Mic - Curitba


    • Editado DouglasPrandini quinta-feira, 9 de julho de 2015 16:41 Abrir link em uma nova guia.
    • Sugerido como Resposta Marcos SJ sexta-feira, 10 de julho de 2015 13:51
    • Marcado como Resposta Marcos SJ sexta-feira, 17 de julho de 2015 14:46
    quinta-feira, 9 de julho de 2015 16:39

Todas as Respostas

  • Olá Rafa,

    Tudo bem?

    Eu acredito que o que você queira é evitar que o resultado saia negativo. Se for eu sugiro a solução abaixo:

    Se valor1 for maior que o valor2 então valordiferença recebe valor1 - valor2 senão valordiferença recebe valor2-valor1. O valor de resultado vai ser sempre positivo.

    Daí por diante só aplicar a lógica que você quiser, ou seja, se valordiferença maior que 10 centavos...

    Espero ter ajudado.


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 8 de julho de 2015 19:13
  • Na verdade não, não quero saber se o valor é negativo ou não. Eu gostaria apenas de calcular se a diferença dos centavos é maior que 10 ou não.

    Minha maior dificuldade neste calculo é apenas saber a diferença dos CENTAVOS.

    Atenciosamente,

    Rafael

    quinta-feira, 9 de julho de 2015 15:20
  • Olá Rafa,

    Tudo bem?

    Não foi bem isso o que eu quis dizer, o que quis dizer é que você quer fazer o calculo prevendo que ele não saia negativo (foi somente uma observação em relação ao caso). A lógica que eu postei não serve pra mostrar se o resultado é negativo ou não, ela serve para você calcular a diferença. Para tanto você precisa efetuar uma operação de subtração.Você precisa usar float para estes valores.

    if (Valor1 > Valor2){

    valordiferenca = Valor1-Valor2

        else{

    valordiferenca = Valor2-Valor1

        }

    if(valordiferenca> coloque aqui o valor que quer usar de referência){

    }


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 9 de julho de 2015 16:30
  • Olá, também pode ser feito utilizando a classe Math (Math.Abs)

    float valor1 = 10.00f;
    float valor2 = 10.11f;
    
    float resultado = valor1 - valor2;
    float resultado2 = valor2 - valor1;
    
    if(Math.Abs(resultado) > 0.10f)
        Console.WriteLine("Maior que 10 centavos.");
    
    if (Math.Abs(resultado2) > 0.10f)
        Console.WriteLine("Maior que 10 centavos.");



    Microsoft Innovation Center - Mic - Curitba


    • Editado DouglasPrandini quinta-feira, 9 de julho de 2015 16:41 Abrir link em uma nova guia.
    • Sugerido como Resposta Marcos SJ sexta-feira, 10 de julho de 2015 13:51
    • Marcado como Resposta Marcos SJ sexta-feira, 17 de julho de 2015 14:46
    quinta-feira, 9 de julho de 2015 16:39