[RESOLVIDO]Erro em formatação de numero, livro Use a cabeça java

4 respostas
Enadrov

Boa tarde galera estava estudando formatação de numero no livro Use a cabeça java, e la tinha o seguinte codigo.

String str = String.format("%.d", 1000000);

Porem estou testanto este código e alguns outros que tem no livro.Porem ele da erro de conversão de numero.
Alguem poderia me dizer o que esta errado.
Desde ja agradeço!!

4 Respostas

Enadrov

Segundo o livro a saida era pra ficar assim

1.000.000

E

O código correto é com vírgula (que indica ao método “format” que devem ser usados os separadores de milhar:

String str = String.format("%,d", 1000000);

A saída esperada é “1,000,000” se as suas opções regionais estiverem em inglês, “1.000.000” se for em português, e provavelmente (não testei) “100,0000” se as opções regionais estiverem em japonês - em japonês, as separações são de dez mil em dez mil, não de mil em mil como em português ou inglês.

O uso do ponto (e com a letra f) é para indicar quantas casas vão depois da vírgula decimal (em português) ou ponto decimal (em inglês). Por exemplo, se quiser formatar uma quantia com 2 casas depois da vírgula:

String str = String.format("%.2f", 100.0 / 3);

deve retornar “33.33”.

Enadrov

Valeu mesmo entanglement então o erro estava no livro mesmo!!

R

entanglement:
O código correto é com vírgula (que indica ao método “format” que devem ser usados os separadores de milhar:

String str = String.format("%,d", 1000000);

A saída esperada é “1,000,000” se as suas opções regionais estiverem em inglês, “1.000.000” se for em português, e provavelmente (não testei) “100,0000” se as opções regionais estiverem em japonês - em japonês, as separações são de dez mil em dez mil, não de mil em mil como em português ou inglês.

O uso do ponto (e com a letra f) é para indicar quantas casas vão depois da vírgula decimal (em português) ou ponto decimal (em inglês). Por exemplo, se quiser formatar uma quantia com 2 casas depois da vírgula:

String str = String.format("%.2f", 100.0 / 3);

deve retornar “33.33”.

Obrigado cara estava com a mesma duvida

Criado 15 de março de 2012
Ultima resposta 24 de mar. de 2013
Respostas 4
Participantes 3