2012-05-02 60 views
12

Estoy usando JSF 2 y RichFaces 3. Aquí en la imagen que se muestra a continuación, los números se muestran como lo que son en la base de datos.Mostrar un número en formato decimal de 2 puntos en jsf

enter image description here

Pero quiero mostrarlos como si 6749395.20 parte de fracción está ahí y si ninguna parte 5095138.00 fracción está allí.

Por ahora, he intentado algo como esto.

<rich:column> 
    <f:facet name="header"> 
     <h:outputText value="Total Amount"/> 
    </f:facet> 
    <h:outputText value="#{rr[2]}"> 
     <f:convertNumber type="number" groupingUsed="true" minFractionDigits="2" pattern="#0.00"/> 
    </h:outputText> 
</rich:column> 

En realidad, yo estoy mostrando todos ellos juntos, pero me han tratado con todos ellos como todas las combinaciones posibles con type, groupingUsed, minFractionDigits y pattern.

¿Por qué no funciona? ¿Cómo es esto causado y cómo puedo resolverlo?

+0

Tu convertidor debería funcionar como se esperaba. El 'minFractionDigits =" 2 "' debería ser suficiente. ¿Intentó lo mismo fuera de la tabla de datos? –

+0

ya man Lo intenté fuera de la tabla de datos también, pero el problema principal fue el tipo de datos y gracias a @BalusC, Él me ayudó. – Addicted

Respuesta

32

Eso puede suceder si el valor no es Number en absoluto, por ejemplo, String. Entonces básicamente estás usando el tipo incorrecto para los datos que representa. Para representar monedas en Java, debe usar BigDecimal. Además, asegúrese de que el tipo en la tabla de la base de datos sea el correcto, es decir, no debe ser un varchar, sino un decimal.

Una vez que haya arreglado el tipo de datos, el <f:convertNumber> funcionará como usted lo indicó. Tenga en cuenta que el atributo pattern anulará groupingUsed y minFractionDigits. Debe utilizar patterno los demás. Además, type="number" ya es el predeterminado, por lo que se puede eliminar.

Así que, o utilizar

<f:convertNumber pattern="#0.00" /> 

o

<f:convertNumber groupingUsed="true" minFractionDigits="2" /> 

Nota que generan diferentes formatos. Probablemente desee establecer la agrupación en false.

También puede utilizar type="currency", que entonces se aplicará automáticamente el patrón correcto de acuerdo con el UIViewRoot#getLocale():

<f:convertNumber type="currency" /> 

Véase también la tag library documentation y la DecimalFormat javadoc.

+0

en realidad en mi base de datos eran números y yo los estaba buscando en una cadena y luego estaba tratando de mostrarlos como un número con algún patrón. Ahora lo he cambiado a una lista de arrays. y ahora muestra el formato correcto y deseado. Gracias amigo Muchas gracias ................ – Addicted

+0

Y con la moneda de nombre, ¿hay algún método que puedo mostrar el símbolo de INR junto con la rupia como puedo mostrar el símbolo de dólar ($). – Addicted

+0

No, gracias también lo tengo ..... – Addicted

Cuestiones relacionadas