[Resolvido] Erro de conversão no método Main

3 respostas
Boohm

Bom dia galera, estou fazendo um exercício que manda escrever um código para conta bancária,
usando uma classe além do método Main, para treinar os conceitos da POO. O código do livro ficou assim:

/*Classe Account (Conta Bancária) com um construtor para
inicializar a variável de instância balance.*/


public class Account 
{
	private double balance;//variável de instância que armazena o saldo.
	
	//Construtor
	public Account(double initialBalance)
	{
		//Valida que initialBalance é maior que 0.0;
		//se não, o saldo é inicializado como o valor padrão 0.0
		if (initialBalance > 0.0)
			balance = initialBalance;
	}//Fim do construtor Account
	
	//Credita (adiciona) uma quantia à conta
	public void credit(double amount)
	{
		balance = balance + amount;//Adiciona quantia ao saldo
	}//Fim do método credit
	
	//Retorna o saldo da conta
	public double getBalance()
	{
		return balance; //Fornece o valor de saldo ao método chamador
	}//Fim do método getBalance
}// Fim da classe Account.
//Cria "Instancia" e manipula o objeto Account.
import java.util.*;

public class AccountTest 
{
	//Método principal inicia a execução do aplicativo Java.
	public static void main(String[] args) 
	{
		Account account1 = new Account(50.00); //Cria o objeto Account
		Account account2 = new Account(-7.53); //cria o objeto Account
		
		//Exibe saldo inicial de cada objeto
		System.out.printf("Saldo da conta 01: $%.2\n",
				account1.getBalance());
		System.out.printf("Saldo da conta 02: $%.2\n",
				account2.getBalance());
		
		//Cria Scanner para obter entrada a partir da janela de comando
		@SuppressWarnings("resource")
		Scanner input = new Scanner(System.in);
		double depositAmount;//Quantia de deposito lida do usuário
		
		System.out.print("Entre com a quantida de depósito para conta 01:");//Prompt
		depositAmount = input.nextDouble();//Obtém a entrada do usuário
		System.out.printf("\nadding %.2f de saldo na conta 01\n\n",
				depositAmount);
		account1.credit(depositAmount);//Adiciona o saldo Account1
		//Exibe os saldos
		System.out.printf("Saldo da conta 01: $%.2\n",
				account1.getBalance());
		System.out.printf("Saldo da conta 02: $%.2\n",
				account1.getBalance());
		
		System.out.print("Entre com a quantia de depósito para conta 02:");//prompt
		depositAmount = input.nextDouble();//Obtém a entrada do usuário
		System.out.printf("\nadding %.2f to account2 balance\n\n",
				depositAmount);
		account2.credit(depositAmount);//Adiciona saldo na conta 02
		
		//Exibe os saldos
		System.out.printf("Saldo Conta 01: $%.2f\n",
				account1.getBalance());
		System.out.printf("Saldo conta 02: $%.2f\n",
				account2.getBalance());
	}

}
A saída gerada pela execução deste código é:
Exception in thread "main" java.util.UnknownFormatConversionException: Conversion = '.'
	at java.util.Formatter.checkText(Formatter.java:2547)
	at java.util.Formatter.parse(Formatter.java:2533)
	at java.util.Formatter.format(Formatter.java:2469)
	at java.io.PrintStream.format(PrintStream.java:970)
	at java.io.PrintStream.printf(PrintStream.java:871)
	at AccountTest.main(AccountTest.java:13)

Creio que o erro seria no tratamento do método "getBalance" "$%.2f" Honestamente, eu não entendi muito bem, e no livro,
não especifica, nem nos apêndices.

Só me restou recorrer aos mestres do GUJ ^^'.

3 Respostas

yfalbino

nas linhas 13, 15, 29 e 31, está faltando o “f” do “%.2f”.
coloque o “f” que acredito que seu problema vai se resolver.

espero ter ajudado.

Boohm

yfalbino:
nas linhas 13, 15, 29 e 31, está faltando o “f” do “%.2f”.
coloque o “f” que acredito que seu problema vai se resolver.

espero ter ajudado.

Muito obrigado!! ^^’

yfalbino

magina ^^

sempre que precisar poste, sempre tentaremos resolver o problema

Criado 8 de maio de 2013
Ultima resposta 8 de mai. de 2013
Respostas 3
Participantes 2