Estou tendo alguns problemas para formatar os decimais de um duplo. Se eu tiver um valor duplo, por exemplo, 4.0, como formato os decimais para que seja 4,00?
java
formatting
double
decimal
Christoffer
fonte
fonte
String.format()
oujava.text.Format
.Respostas:
Uma das maneiras seria usar NumberFormat .
Resultado:
4,00
fonte
Com o Java 8, você pode usar o
format
método ..: -f
é usado parafloating
valor em pontos ..2
após decimal denota, número de casas decimais após.
Para a maioria das versões Java, você pode usar
DecimalFormat
: -fonte
Use String.format :
String.format("%.2f", 4.52135);
De acordo com os documentos:
fonte
Usando String.format, você pode fazer isso:
Observe a vírgula que torna isso diferente da resposta de @ Vincent
Resultado:
$52,000.00
Um bom recurso para formatação é a página java oficial sobre o assunto
fonte
Você sempre pode usar o método estático
printf from System.out
- você então implementa o formatador correspondente; isso economiza espaço de heap no qual outros exemplos exigiam que você fizesse.Ex:
Economiza espaço de heap, o que é um grande bônus, no entanto, eu tenho a opinião de que este exemplo é muito mais gerenciável do que qualquer outra resposta, especialmente porque a maioria dos programadores conhece a função printf do C (o Java muda ligeiramente a função / método).
fonte
out
é oPrintStream
.printf
é um método estático dePrintStream
. Veja aqui ;) Mas +1, no entanto.fonte
fonte
Um método alternativo é usar o
setMinimumFractionDigits
método daNumberFormat
classe.Aqui, você basicamente especifica quantos números deseja que apareçam após o ponto decimal.
Portanto, uma entrada de
4.0
produziria4.00
, supondo que o valor especificado fosse 2.Mas, se sua
Double
entrada contiver mais do que o valor especificado, levará o valor mínimo especificado e, em seguida, adicionará mais um dígito arredondado para cima / para baixoPor exemplo,
4.15465454
com uma quantidade mínima de 2 especificados produzirá4.155
Experimente online
fonte
Existem muitas maneiras de fazer isso. Esses são dados abaixo:
Suponha que seu número original seja fornecido abaixo:
Usando NumberFormat:
Usando String.format:
Usando DecimalFormat e padrão:
Usando DecimalFormat e padrão
Em todos os casos, a saída será: 2354548,23
Nota :
Durante o arredondamento, você pode adicionar
RoundingMode
seu formatador. Aqui estão alguns modos de arredondamento fornecidos abaixo:Aqui estão as importações :
fonte
Você pode usar qualquer um dos métodos abaixo
Se você estiver usando
java.text.DecimalFormat
OU
Se você quiser convertê-lo em formato de string simples
Todo o código acima imprimirá 4,00
fonte
Funciona 100%.
fonte
Primeira importação
NumberFormat
. Em seguida, adicione este:Isso dará a você duas casas decimais e colocará um cifrão se for para moeda.
fonte
Você pode fazer isso da seguinte maneira:
fonte
##
vez de00
Eu sei que este é um tópico antigo, mas se você realmente gosta de ter o ponto em vez da vírgula, apenas salve seu resultado como X, 00 em uma String e simplesmente altere por um ponto para obter X.00
A maneira mais simples é usar substituir.
A saída será o X.00 desejado. Além disso, para facilitar, você pode fazer tudo de uma vez e salvá-lo em uma variável dupla:
Eu sei que esta resposta não é útil agora, mas talvez alguém que verifique este fórum esteja procurando uma solução rápida como esta.
fonte