Capitulo 10 deitel polimorfismo

ae, galara to lendo deitel sexta edição e no cap 10 fala sobre polifornismo, tem um programa onde ele ensina a desenvolver uma folha de pagamento e talz… fiz o programa mas ta dando um pequeno erro:


Exception in thread “main” java.util.UnknownFormatConversionException: Conversio
n = ‘,’
at java.util.Formatter.checkText(Formatter.java:2500)
at java.util.Formatter.parse(Formatter.java:2464)
at java.util.Formatter.format(Formatter.java:2411)
at java.util.Formatter.format(Formatter.java:2364)
at java.lang.String.format(String.java:2520)
at ComissionEmploye.toString(ComissionEmploye.java:45)
at java.util.Formatter$FormatSpecifier.printString(Formatter.java:2790)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2673)
at java.util.Formatter.format(Formatter.java:2430)
at java.io.PrintStream.format(PrintStream.java:899)
at java.io.PrintStream.printf(PrintStream.java:800)
at Payroll.main(Payroll.java:24)

gostaria uma ajuda ai!! que tipo de erro eh esse talz… ja olhei todo o codigo e nao achei…coloquei em anexo todas as classes que utilizei!!

aqui eh a classe de test:

[code]
//programa para testar as classes

public class Payroll
{
public static void main(String args[])
{
//aqui configura o salario semanal
SalariedEmploye salariedemploye = new SalariedEmploye(“Camilo”,“neto”,“1254-542”,800.00);

	//aqui configura o salario hora
	HoraEmploye horemploye = new HoraEmploye("Carlos", "Costa", "25478-85", 16.75, 40);
	
	//salario por comissao
	
	ComissionEmploye comissionemploye= new ComissionEmploye("Sueli", "Nogueira", "25478-244", 10000, .06);
	//salario base
	
	BasePlus baseplus = new BasePlus("Marcos", "Augusto", "25478-3654",5000,.04,300);
	
	System.out.println("Processando empregado individual:\n");
	
	System.out.printf("%s\n%s: R$%,.2f\n\n", salariedemploye, "lucro", salariedemploye.lucro());
	System.out.printf("%s\n%s: R$%,.2f\n\n", horemploye, "lucro", horemploye.lucro());
	System.out.printf("%s\n%s: R$%,.2f\n\n", comissionemploye, "lucro", comissionemploye.lucro());
	System.out.printf("%s\n%s: R$%,.2f\n\n", baseplus, "lucro", baseplus.lucro());
	
	//cria um array de quatro elemento
	
	Employe empregado[] = new Employe[4];
	
	empregado[0] = salariedemploye;
	empregado[1] =  horemploye;
	empregado[2] = comissionemploye;
	empregado[3] = baseplus;
	
	System.out.println("processo de empregado com polifornismo");
	
	for( Employe currenteEmploye : empregado)
	{
		System.out.println(currenteEmploye);
		
		if(currenteEmploye instanceof BasePlus)
		{
			BasePlus employye = (BasePlus)currenteEmploye;
			double oldbase = employye.getBaseSalary();
			employye.setBaseSalary(1.10 * oldbase);
			System.out.printf("nova base salario 10%% eh R$%,.2f\n",
			employye.getBaseSalary());
		}
		
		System.out.printf("lucro R$%,.2f\n\n", currenteEmploye.lucro());
	}
	
	//obtem o nome do tipo de cada ojeto no array
	for(int j = 0; j < empregado.length; j++)
	{
		System.out.printf("empregado %d e a %s\n", j, empregado[j].getClass().getName());
	}
}

}

	[/code]

O stacktrace já lhe dá a resposta de onde você deveria procurar:

 at Payroll.main(Payroll.java:24) 

Troque as máscaras de formatação nos printf’s :wink:

Exemplo:

double d = 10000.0/3.0;
System.out.printf("%.,2f", d); // 3.333,33 

[quote=Daniel Quirino Oliveira]O stacktrace já lhe dá a resposta de onde você deveria procurar:

 at Payroll.main(Payroll.java:24) 

Troque as máscaras de formatação nos printf’s :wink:

Exemplo:

double d = 10000.0/3.0;
System.out.printf("%.,2f", d); // 3.333,33 

[/quote]

tem uma virgula sobrando depois do ponto da mascara .2%f ali no printf …
Não entendi seu uso, poderia explicar?!

Abraço!

bom no deitel tava assim acho que para fica 1,00 , agora q to reparando n sei pra q!!removi mais o erro persiste :frowning: