DecimalFormat é uma subclasse concreta do númeroFormat, usada para formatar números decimais. Ele pode suportar a localização de diferentes tipos de números, incluindo números inteiros (123), números de ponto fixo (123,4), números representados por notação científica (1,23E4), porcentagens (12%) e valores (US $ 123).
Vamos primeiro apresentar o uso do DecimalFormat:
importar java.text.*; importar java.util.*; classe pública decimalformatdemo {public static void main (string args []) {decimalformat df1 = new DecimalFormat ("###, ###. 0000"); // use o sistema padrão padrão system.out.println (df1.format (11111111123456.12); Loce.setDefault (Locale.us); Decimalformat df2 = new decimalformat ("##, ###. 0000"); // use o US Format System.out.println (df2.Format (1111111123456.12); //----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- (Decimalformat) numberFormat.getPercentInstance (); } catch (classCastException e) {<span style = "white-space: pre"> </span> System.err.println (e); } df5.ApplyPattern ("00.0000%"); System.out.println (df5.Format (0,34567)); System.out.println (df5.Format (1.34567)); }} (1) Para arredondamento de dados:
DecimalFormat contém um conjunto de símbolos, e o significado de cada símbolo é explicado da seguinte maneira:
0 um número
# Um número, sem incluir 0
. Espaço reservado para separador decimal
, espaço reservado para delimitador de grupo
; Formato delimitado.
- Prefixo negativo padrão.
% multiplicado por 100 e exibido como porcentagem
? Multiplique por 1000 e exibir como um quilograma; substitua por símbolos de moeda; Se escrito o dobro, substitua por símbolos internacionais de moeda. Se aparecer em um padrão, use o separador decimal da moeda em vez do separador decimal.
X prefixo ou qualquer outro caractere usado no sufixo para se referir a caracteres especiais no prefixo ou sufixo.
Por exemplo:
Decimalformat df1 = new decimalformat ("### 0,00"); // mantém dois lugares decimais e, se houver menos de dois lugares decimais, o zero será automaticamente suplementado System.out.println (df1.format (124.367)); System.out.println (df1.format (124.3)); Decimalformat df2 = novo decimalformat ("### 0. ##"); // mantém dois lugares decimais e, se houver menos de dois lugares decimais, o zero será suplementado System.out.println (df2.format (124.6)); System.out.println (df2.Format (124)); Decimalformat df3 = new decimalformat ("000.000"); // mantém três casas decimais e compensa os zeros onde não há dígitos insuficientes.out.println (df3.Format (24)); Decimalformat df = novo decimalformat ("0,000e0000"); // Exponent System.out.println (df.format (1234.56)); Decimalformat nf = (decimalformat) numberFormat.getPercentInstance (); //Percentsystem.out.println(nf.format(0.476354)); nf.ApplyPattern ("00,00%"); System.out.println (nf.format (0,476354)); Resultados em execução:
124.37 124.30 124.6 124 024.000 1.235E0003 48% 47,64%
(2) Para cordas de leitura e análise contendo números formatados? O suporte à resolução está incluído no númeroFormat. Por exemplo:
importar java.util.locale; importar java.Text.NumberFormat; importar java.text.parseException; classe pública decimalformat5 {public static void main (string args []) {// formato local númeroFormat nf1 = numberFormat.getInstance (); Objeto obj1 = null; // Parsing baseado em formato tente {obj1 = nf1.parse ("1234,56"); } catch (parseException e1) {System.err.println (e1); } System.out.println (obj1); // formato alemão númeroFormat nf2 = numberFormat.getInstance (Locale.German); Objeto obj2 = null; // Parsing baseado em formato tente {obj2 = nf2.parse ("1234,56"); } catch (parseException e2) {System.err.println (e2); } System.out.println (obj2); }} Resultados em execução:
123456 // operação nos Estados Unidos; Considerado String 1234.56 // Operação na Alemanha; considerado um decimal
(3) para decimalformat e numberFormat:
Decimalformat é uma subclasse do númeroFormat, sua instância é especificada como uma região específica. Portanto, você pode especificar uma região usando o numberFormat.getInstance e depois lançar a estrutura em um objeto decimalformat. A documentação menciona que essa técnica pode ser aplicada na maioria dos casos, mas você precisa usar um bloco de tentativa/captura para cercar o elenco, caso a conversão não funcione corretamente (presumivelmente usando uma área estranha em situações muito discretas).
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.