Erro na formatação

6 respostas
peresjuliao

Olá Pessoal,

Estou com um pequeno problema neste código abaixo de formatação, eu consigo construir build e não aparece erros, mas na hora que vou rodar da os sequinte erro:

Exception in thread main java.util.UnknownFormatConversionException: Conversion = .

at java.util.Formatter.checkText(Formatter.java:2502)

at java.util.Formatter.parse(Formatter.java:2484)

at java.util.Formatter.format(Formatter.java:2413)

at java.util.Formatter.format(Formatter.java:2366)

at java.lang.String.format(String.java:2770)

at TestFormats.main(TestFormats.java:7)

Segue abaixo o código:

public class TestFormats 
{
	public static void main(String[] args) 
	{
        String s = String.format("%.d", [telefone removido]);
        System.out.println(s);
    }
}

6 Respostas

Rodrigo_Rocha_de_Mor

Tire o ponto…

[]'s

peresjuliao

Então Rodrigo,

Estou testando a formatação de números do Java e gostaria que este número [telefone removido] fosse formatado para
1.000.000.000, Entendeu?

Rodrigo_Rocha_de_Mor

Da uma olhada aí fii…

Acredito que vai ajudar!

[]'s

http://www.univasf.edu.br/~max.santana/arquivos/poo_2008.2/laboratorio06_formatandosaida.pdf

T

Você não leu a documentação direito. O caracter a ser usado para indicar ao printf que deve separar os milhares é “,” (vírgula), não “.”.
Lembre-se que o Java surgiu nos Estados Unidos e você deve pensar como um americano (separador de milhares é “,” e a vírgula ou ponto decimal é “.”)

E a propósito, evite usar, para números muito grandes, inteiros ou longs; use double mesmo, e use “%f”, não “%d” para formatação. De qualquer maneira, rode o programa abaixo.

import java.util.*;


class TestePrintf {
    public static void main (String[] args) {
        Locale.setDefault (new Locale ("pt", "BR"));

        System.out.printf ("Você ganhou %,d na loteria%n", 1000000);
    }
}
peresjuliao

Olá Thingol,

Isso mesmo você está certo veja o código que mandei:

String s = String.format("%.d", [telefone removido]);

Ai substitui o ponto pela virgula e funcionou e veja como ficou

String s = String.format("%,d", [telefone removido]);

Estou estudando o livro “Use a Cabeça Java” e no Capítulo 10 “Números e elementos estáticos” na página 212 tem o trecho de código igual ao que eu mandei. Então o código do livro que está errado.

Feliz ano novo

Abraços

peresjuliao

Olá Rodrigo?!

Então neste link que você me mandou http://www.univasf.edu.br/~max.santana/arquivos/poo_2008.2/laboratorio06_formatandosaida.pdf era antigamente antes da do Java 5 e agora não precisamos mais criar um novo objeto para adicionar números ou formata-los

Criado 30 de dezembro de 2008
Ultima resposta 30 de dez. de 2008
Respostas 6
Participantes 3