Problema com código de calculadora com fórmula matemática

4 respostas
rodolfo.bonilha

Boa a noite a todos,

Sou iniciante em java, procurei um tópico específico sobre isso e não achei, então perdoem-me se já tiver e eu não achei.

Estou com um problema, preciso ao final do código, digitar um valor percentual, tipo 2,10 para fazer o cálculo de uma forma matemática.

Então, na última parte de meu código vai pedir para digitar a taxa de antecipação, então a pessoa vai lá e digita, após isso, quero que ocorra o cálculo da fórmula, parece até simples, mas na prática não está sendo, vou postar o código abaixo:

// Programa que calcula a taxa de new pricing

import java.util.Scanner;

public class CalcPrincing {
	
	public static void main( String[] args ){
		
		// cria um scanner para obter a entrada da janela de comando
		Scanner input = new Scanner( System.in);
	
	double tCartao;	// Taxa de cartão de crédito
	double tFixa; // Taxa fixa de transação
	double tAntecipacao = 0; // Taxa de antecipação
	int nParcelas = 0; // Número de parcelas
	int pRecebimento = 0; // Prazo de recebimento
	double valorTotal = 0; // Valor total da transação
	double valorProduto; // Valor do produto
	double vSemTaxa; // Valor sem taxa
	double valorMenosTaxaC; // Valor do resultado já com a taxa de cartão debitada
	double vAntecipacao = 0; // calculo da taxa de antecipação
	double resultado; // resultado da fórmula final da fórmula da taxa princing
	
	System.out.println("Digite o valor do produto:");
	valorTotal = input.nextDouble(); // lê valor do produto digitado pelo usuário
	
	System.out.println("Digite a taxa de cartão de crédito:");
	tCartao = input.nextDouble(); // lê primeiro número fornecido pelo usuário
	
	valorMenosTaxaC = valorTotal - ((valorTotal/100) * tCartao);
	
	System.out.println(valorMenosTaxaC);
	
	System.out.println("Digite a taxa fixa de transação");
	tFixa = input.nextDouble(); // lê a taxa de antecipação
	
	valorTotal = valorMenosTaxaC - tFixa;
	System.out.println(valorTotal); // Exibe o resultado
	
	System.out.println("Digite o número de parcelas");
	nParcelas = input.nextInt();
	
	System.out.println("Digite o prazo de recebimento");
	pRecebimento = input.nextInt();
	
	System.out.println("Digite a taxa de antecipação");
	tAntecipacao = input.nextInt();
	
	resultado = tAntecipacao / 30 * (( 30 + (nParcelas - 1) * 15) - pRecebimento);
	System.out.println(resultado);

Meu problema é quando peço para digitar a taxa de antecipação aqui:

System.out.println("Digite a taxa de antecipação");
	tAntecipacao = input.nextInt();

Não calcula e dá erro Exception in thread "main" java.util.InputMismatchException.

Gostaria muito se alguém me ajudasse, estou na quase na parte final do meu objetivo que é criar uma calculadora para uma fórmula de taxa de juros especial para uma empresa que trabalho.

Obrigado por qualquer luz, rs.

4 Respostas

pvrsouza

Tenta isso:

tAntecipacao = input.nextDouble();
rodolfo.bonilha

Cara foi pura falta de atenção, simples resolver, não tinha colocado a variável double ali, obrigado pela ajuda.

Rodrigo_Sasaki

Eu sei que funcionou, mas ler dados assim do console é perigoso, já foram relatados vários problemas.

Quando é usado para ler arquivos é uma coisa, agora para ler direto o que o usuário digitou no console, eu recomendo que faça assim: tAntecipacao = Double.parseDouble(input.nextLine());

rodolfo.bonilha

Entendi Rodrigo, obrigado pela dica, vou fazer as alterações.

Criado 8 de janeiro de 2013
Ultima resposta 9 de jan. de 2013
Respostas 4
Participantes 3