DecimalFormat es una subclase concreta de NumberFormat, utilizado para formatear números decimales. Puede respaldar la localización de diferentes tipos de números, incluidos enteros (123), números de punto fijo (123.4), números de notación científica representada (1.23E4), porcentajes (12%) y montos ($ 123).
Primero presentemos el uso de decimalformat:
import java.text.*; import java.util.*; clase pública decimalFormatDemo {public static void main (string args []) {decimalFormat df1 = new DecimalFormat ("###, ###. 0000"); // use el sistema de formato predeterminado del sistema.out.println (df1.format (111111123456.12)); Locale.setDefault (locale.us); DecimalFormat df2 = new DecimalFormat ("##, ###. 0000"); // use el formato de EE. UU. // --------------------------------------------------------------------------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------- (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 el redondeo de datos:
Decimalformat contiene un conjunto de símbolos, y el significado de cada símbolo se explica de la siguiente manera:
0 un número
# Un número, sin incluir 0
. Marcador de posición para separador decimal
, marcador de posición para delimitador del grupo
; Formato delimitado.
- Prefijo negativo predeterminado.
% multiplicado por 100 y se muestra como porcentaje
? Multiplicar por 1000 y mostrar como un kilogramo; reemplazar con símbolos monetarios; Si se escribe Doble, reemplace con símbolos de moneda internacional. Si aparece en un patrón, use el separador decimal de divisas en lugar del separador decimal.
X prefijo o cualquier otro personaje utilizado en el sufijo para referirse a caracteres especiales en el prefijo o sufijo.
Por ejemplo:
Decimalformat df1 = new DecimalFormat ("### 0.00"); // Conserva dos lugares decimales, y si hay menos de dos decimales, el cero se complementará automáticamente System.out.println (DF1.Format (124.367)); System.out.println (df1.format (124.3)); DecimalFormat df2 = new DecimalFormat ("### 0. ##"); // Conserva dos lugares decimales, y si hay menos de dos decimales, el cero se complementará System.out.println (df2.format (124.6)); System.out.println (df2.format (124)); Decimalformat df3 = new DecimalFormat ("000.000"); // Conserva tres decimales y compensa los ceros donde no hay dígitos insuficientes. Decimalformat df = new DecimalFormat ("0.000e0000"); // exponente sistema.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 de ejecución:
124.37 124.30 124.6 124 024.000 1.235e0003 48% 47.64%
(2) ¿Para cadenas de lectura y análisis que contienen números formateados? El soporte de resolución se incluye en NumberFormat. Por ejemplo:
import java.util.locale; import java.text.numberFormat; import java.text.parseException; public class DecimalFormat5 {public static void main (string args []) {// formato local numberFormat nf1 = numberFormat.getInstance (); Objeco obj1 = nulo; // análisis de análisis basado en formato {obj1 = nf1.parse ("1234,56"); } catch (ParseException e1) {System.err.println (e1); } System.out.println (obj1); // formato alemán numberFormat nf2 = numberFormat.getInstance (locale.german); Objero obj2 = nulo; // análisis de análisis basado en formato {obj2 = nf2.parse ("1234,56"); } catch (ParseException e2) {System.err.println (e2); } System.out.println (obj2); }} Resultados de ejecución:
123456 // Operación en los Estados Unidos; Cadena considerada 1234.56 // Operación en Alemania; considerado un decimal
(3) para decimalformat y numberFormat:
DecimalFormat es una subclase de NumberFormat, su instancia se especifica como una región específica. Por lo tanto, puede especificar una región usando NumberFormat.getInstance y luego lanzar la estructura a un objeto decimalformat. La documentación menciona que esta técnica se puede aplicar en la mayoría de los casos, pero debe usar un bloque de try/captura para rodear el elenco en caso de que la conversión no funcione correctamente (presumiblemente usando un área extraña en situaciones muy discretas).
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.