Este artigo lista vários métodos:
1. Use java.math.BigDecimal
2. Use java.text.DecimalFormat
3. Use java.text.NumberFormat
4. Use java.util.Formatter
5. Use String.format
No final do artigo, compartilhei mais conhecimento de expansão com você. Além disso, você pode implementá -lo ou emprestar a biblioteca de classes encapsulada para implementá -lo. Não vou listá -los um por um neste artigo. Vamos dar uma olhada na introdução detalhada abaixo.
1. Use BigDecimal e mantenha os dois lugares decimais
public static string format1 (valor duplo) {bigdecimal bd = novo bigdecimal (valor); bd = bd.setscale (2, roundingmode.half_up); retornar bd.toString ();}2. Use decimalformat para manter os dois lugares decimais
public static string format2 (valor duplo) {decimalformat df = new DecimalFormat ("0,00"); df.setRoundingMode (RoundingMode.half_up); retornar df.format (value);}3. Use o número de números para manter os dois lugares decimais
public static string format3 (valor duplo) {numberFormat nf = numberFormat.getNumberInstance (); nf.setMaximumfractionDigits (2); / * * SetminimumfractionDigits para 2 * * Se você não fizer isso, quando o valor do valor for 100,00, retorne 100 * * em vez de 100,00 */ nf.setminimumfractionDigits (2); nf.setRoundingMode (RoundingMode.half_up); / * * Se o formato que você deseja que a saída for separado por vírgulas, você poderá defini -lo como true */ nf.setGroupingUSED (false); Retorne nf.format (value);}4. Use java.util.formatter e mantenha os dois lugares decimais
Formato de String estática public 4 (valor duplo) { / * * % .2f % significa qualquer dígito antes do ponto decimal 2. O resultado após dois formatos decimais é f. O tipo de ponto flutuante é */ retorna new formatter (). Formato ("%. 2f", valor) .ToString ();}5. Use String.Format para implementá -lo.
public static string format5 (valor duplo) {return string.format ("%. 2f", valor) .toString ();}Conhecimento estendido
Como uma ferramenta de processamento de texto, String.format nos fornece funções poderosas e ricas em formatação de string.
Formatar números de ponto flutuante
O formato de espaço reservado é: %[Índice $] [Identificação]*[Largura mínima] [. Precision] Converter]
duplo num = 123.4567899; system.out.print (string.format (" %f %n", num)); // 123.456790 system.out.print (string.format (" %a %n", num)); // 0x1.edd3c0bb46929p6 system.out.print (string.format (" %g %n", num)); // 123.457IDs disponíveis:
-, alinhado à esquerda dentro da largura mínima, não pode ser usado com a marca 0.
0. Se o comprimento do conteúdo for menor que a largura mínima, preencha -o com 0 à esquerda.
#, adicione um 0 antes de Ength e Hexadecimal, adicione 0x antes de hexadecimal.
+, o resultado sempre contém um sinal de A + ou -.
Espaço, adicione espaço antes dos números positivos e adicione - assine antes dos números negativos.
,, usado apenas com decimal, separado por cada 3 dígitos.
(, Se o resultado for um número negativo, enrole -o entre colchetes e nenhum símbolo é exibido.
Conversores disponíveis:
B, tipo booleano, desde que o parâmetro real seja um tipo booleano que não seja falso, é formatado como uma string verdadeira, caso contrário, é uma string false.
N, um caractere de nova linha independente da plataforma, também pode ser obtido através do System.GetProperty ("Line.separator").
F, tipo de ponto flutuante (decimal). Exibe 9 números significativos e será arredondado. Como 99,99.
A, tipo de número de ponto flutuante (hexadecimal).
e, tipo exponencial. Como 9,38e+5.
G, tipo de número de ponto flutuante (mais curto que %f, %A, exibe números válidos de 6 dígitos e será arredondado)
Resumir
O exposto acima é o conteúdo inteiro dos múltiplos métodos de escrita de dois lugares decimais retidos em Java. Espero que o conteúdo deste artigo seja de certa ajuda para estudar ou trabalhar de todos. Se você tiver alguma dúvida, pode deixar uma mensagem para se comunicar.