Usuário com melhor resposta
Descobrir diferença de casas decimais - Trabalhando com valores em reais

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
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
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.
-
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
-
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.
-
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