Que erro é esse?

3 respostas
G

Boa tarde pessoal!

Estudando com o livro da kathy Sierra, quando me deparei com o seguinte código que não roda. Na realidade gera uma excesão, que não consegiu entender.

int one = 20456654;
	double two = 100567890.248907;
	
	String s = String.format("Posição de %.d entre as %.,2f existentes", one,two);

	System.out.println(s);

è lançada uma exceção (pelo menos aqui em minha máquina), porém se eu suprimir os pontos em " %d" e "%,2f ". ele roda sem problema…

o que pode ser isso galera ?

Aguardo resposta de vcs

3 Respostas

maquiavelbona

O formato é %d (decimal) e %f (float).
Quando usas %,2f , quer dizer que você quer que a saída seja de um número de ponto flutuante com 2 casas decimais. Não existe ponto dentro da string, o que pode ter é a vírgula.

Mais informações, podes ver esse documento para C, mas o Java trabalha da mesma maneira: http://www.csee.umbc.edu/courses/undergraduate/104/spring05/burt/C_summary.html ( vá até o final da página )

Até!

G

Essa é a excessão:

Exception in thread "main" java.util.UnknownFormatConversionException: Conversio n = '.' at java.util.Formatter.checkText(Unknown Source) at java.util.Formatter.parse(Unknown Source) at java.util.Formatter.format(Unknown Source) at java.util.Formatter.format(Unknown Source) at java.lang.String.format(Unknown Source)

G

valeu maquiavelbona

O livro está impresso errado!
:lol:

Criado 7 de março de 2007
Ultima resposta 7 de mar. de 2007
Respostas 3
Participantes 2