Valores aceptados por las propiedades "Formato" de diversos elementos

Estas propiedades se usan para dar formato decimal a valores de tipo double o int. Describir todas las posibilidades para los objetos de la  clase aceptada (java.text.DecimalFormat) sería demasiado largo, pero podemos extraer la información básica (que resulta suficiente en la mayoría de los casos) de su página de referencia.

Una estructura de formato consiste en una subestructura para los valores positivos y otra para los negativos, por ejemplo:
\#,\#\#0.00;(\#,\#\#0.00)
Cada subestructura contiene un prefijo, una parte numérica y un sufijo. 

La subestructura para valores negativos es opcional. Si no se proporciona, entonces a la subestructura positiva se le añade un signo menos para el caso de valores negativos. Así, si se escribe solamente x=0.00, esto equivale a x=0.00;x=-0.00. Si hay una subestructura negativa explícita, ésta sirve únicamente para especificar el prefijo y el sufijo correspondiente. Esto significa que \#,\#\#0.0\#;(\#) produce el mismo comportamiento que \#,\#\#0.0\#;(\#,\#\#0.0\#).

Los prefijos, sufijos y símbolos varios usados por el formato pueden fijarse a valores cualesquiera, y aparecerán adecuadamente al formatear. Sin embargo, debe llevarse especial cuidado para que los símbolos y los textos no entren en conflicto, o no sería posible realizar el muestreo de valores cuando éste se precise. Por ejemplo, los prefijos para valores positivos y negativos deben ser diferentes para que la clase pueda distinguir valores positivos y negativos. (Si fueran idénticos, entonces DecimalFormat se comportará como si no se hubiera especificado una subestructura negativa). Otro ejemplo consiste en que los s eparadores decimales y de miles deben ser caracteres distintos, o sería imposible muestrear un valor. 

Estructuras ilegales, como \#.\#.\# o \#.\#\#\#,\#\#\#, causarán una excepción del tipoIllegalArgumentException por parte de DecimalFormat, junto con un mensaje que describe el problema. 

Sintaxis de estructuras:

estruc := estruc_positiva{';' estruc_negativa}
estruc_positiva := {prefijo}número{sufijo}
estruc_negativa := {prefijo}número{sufijo}
número := entero{'.' fracción}{exponente}
prefijo := '\u0000'..'\uFFFD' - caracteres_especiales
sufijo := '\u0000'..'\uFFFD' - caracteres_especiales
entero := min_entero | '#' | '#' entero | '#' ',' entero
min_entero := '0' | '0' min_entero | '0' ',' min_entero
fracción := '0'* '#'*
exponente := 'E' '0' '0'*

Notación:

X* 0 o más ocurrencias de X
{ X } 0 o 1 ocurrencias de X
X | Y X o Y
X..Y cualquier carácter desde X hasta Y, incluidos
S - T caracteres en S, exceptos los de T


Sugerencia práctica

Después de esta terrible jerga, aquí viene una sencilla sugerencia práctica. Utilice estructuras como la siguiente:
Nombre = #.00;Nombre = - #.00 
si quiere mostrar dos cifras decimales (añada más ceros si lo desea), para variables de tipo double, y estructuras como:
Nombre = 0;Nombre = - 0
para enteros. En ambos casos, sustituya Nombre por el nombre de la variable que quiere mostrar.