Formateando números: NumberFormat

Para comenzar, simplemente comentar que esta clase es muy útil para presentar números por pantalla, teniendo el control en todo momento del formato que tendrán. Más adelante dedicaremos otro post a DecimalFormat, que hereda de esta primera.

NumberFormat es la clase más sencilla de las dos. Principalmente presenta los siguientes métodos:

  • getInstance() - Simplemente obtiene el formato del idioma actual.
  • getCurrencyInstance() - Igual que el anterior, pero con formato de moneda.

y sus respectivas variantes con un parámetro de tipo Locale, que sustituirá al idioma actual.

Para realizar el formato será necesario llamar al método format, como veréis en el ejemplo.

Esta clase supone un componente muy flexible a la hora de formatear números. Como siempre, me apoyaré en la documentación de Java para la explicación, dado que es nuestro más preciado recurso ;-).

 

Su voto: Nada Promedio: 4.3 (6 votos)

bien amigo gracias por el aporte una duda tendo, digamos que yo quiro mostrar una traduccion de monedas a diferentes paices como lo aria

Sería tan sencillo como definir varias instancias de NumberFormat, cada una con su locale correspondiente, y entonces imprimir la cadena resultante de concatenar todas las llamadas al método format de cada instancia.
Algo así:

 

Muy bueno! Ahora, una consulta... Si además de agregar el formato local, quiero especificar la cantidad de dígitos... Cómo podría hacer?

Me refiero, a cantidad de dígitos decimales...
Saludos!

Hola amigo tengo problemas con la rutina de validacion de numero de telefono de google me da error el getInstance(); no consigo que me lo acepte y lo coloca en rojo. Error can not find symbol getInstance()...........
Tengo cargadas todas estas librerias

import com.google.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberType;
import com.google.i18n.phonenumbers.Phonenumber;
import com.google.i18n.phonenumbers.NumberParseException;
import com.google.i18n.phonenumbers.Phonemetadata;
import com.google.i18n.phonenumbers.AlternateFormatsCountryCodeSet;
import com.google.i18n.phonenumbers.*;
import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;

public boolean isMobileNumberValid(String phoneNumber)
{
boolean isValid = false;
// Use the libphonenumber library to validate Number
PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
Phonenumber.PhoneNumber swissNumberProto =null ;
try {
swissNumberProto = phoneUtil.parse(phoneNumber, "CH");
} catch (NumberParseException e) {
System.err.println("NumberParseException was thrown: " + e.toString());
}

if(phoneUtil.isValidNumber(swissNumberProto))
{
isValid = true;
}

Enviar un comentario nuevo

El contenido de este campo se mantiene privado y no se mostrará públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <pre>. The supported tag styles are: <foo>, [foo].

Más información sobre opciones de formato