Quero converter um número inteiro 35634646 para ter os mil "," e, portanto, deve ser 35.634.646.
Qual seria a maneira mais rápida de fazer isso?
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(35634646));
Output: 35,634,646
import java.text.NumberFormat;
.,
, no entanto, também existem regiões que usam.
para agrupar. Em uma palavra, codificar um código de idioma é considerado uma prática ruim.Locale.getCurrent()
é a solução #Você pede o mais rápido, mas talvez você queira dizer "melhor" ou "correto" ou "típico"?
Você também pede vírgulas para indicar milhares, mas talvez você queira dizer "na forma legível humana normal, de acordo com o costume local do seu usuário"?
Você faz assim:
Os americanos receberão "35.634.646"
Alemães receberão "35.634.646"
Alemães suíços receberão "35'634'646"
fonte
fonte
Inteiros:
Duplas:
String.format é bastante poderoso.
- Editado por feedback do psuzzi .
fonte
String.format
. Começa comreturn new Formatter(l) ...
etc. Portanto, o argumento do coletor de lixo não é tão forte quanto parece.Resultado:
35,634,646
fonte
#,###
, se você deseja formatar o estilo europeu, poderá usá-lo#,##,###
.,
.As outras respostas estão corretas; no entanto, verifique seu código do idioma antes de usar
"%,d"
:Resultado:
fonte
Esta solução funcionou para mim:
fonte
Use o
%d
especificador de formato com uma vírgula:%,d
Esta é de longe a maneira mais fácil.
fonte
Se o mesmo precisar ser feito no JSP, use:
curso para múltiplos valores use:
fonte
aqui está uma solução para aqueles que não conseguem acessar "numberformat" nem "String.format" (usando uma versão limitada do java dentro de uma estrutura). Espero que seja útil.
fonte
use Extension
resultado
fonte
você não pode usar um
A vírgula no
printf
deve adicionar as vírgulas no%d
inter.Não é positivo, mas funciona para mim.
fonte
Primeiro você precisa incluir as tags JSTL: -
no início da página
fonte