java.lang.NumberFormatException
Pongo de ejemplo este caso, estamos en un proyecto y resulta que todo funciona bien pero al tiempo cuando le haces una prueba comienza a fallar lanzando esta excepción en particular "java.lang.NumberFormatException: For input string: '0,0'", ahí es cuando te preguntas si es algún tipo de brujería o que es lo que está pasando, ya que ese código paso todas las etapas de prueba y en producción funciona de maravilla pero en tu maquina localhost no funciona... Que caga... Bueno te cuento que ahí interviene la configuración regional de tu equipo, en mi caso lo que paso fue eso, parece que en algún momento de mi vida cambie la configuración regional de mi equipo y Java a la hora de compilar esta tomando tu configuración regional y puede que algunas cosas no funcionen como deberían, para solucionarlo no cambie la configuración regional de mi equipo sino que utilice otro método el cual me asegura que funcionara con cualquier configuración regional.
En el código hacía unas operaciones con tipos de datos
Double
, por lo tanto para formatear el valor utilizo un DecimalFormat
y ahí lanzaba la excepción, el código es así:
Double valor = 0.0; DecimalFormat decimalFormat = new DecimalFormat("0.0"); valor = Double.valueOf(decimalFormat.format((88778.65 / 13456.0)));Justamente en la línea 4 se produce el error, para solucionar ese problemita independientemente de tu configuración regional, utilice la clase java.text.DecimalFormatSymbols de esta manera.
DecimalFormatSymbols decimalFormatSymbols = DecimalFormatSymbols.getInstance(); decimalFormatSymbols.setDecimalSeparator('.'); Double valor = 0.0; DecimalFormat decimalFormat = new DecimalFormat("0.0", decimalFormatSymbols); valor = Double.valueOf(decimalFormat.format((88778.65 / 13456.0)));Lo que hago es cambiarle el separador decimal que utiliza
DecimalFormat
basado en mi configuración regional. Depurando el ejemplo te muestro una lista de las propiedades de la clase DecimalFormatSymbols
. Está utilizando la configuración regional de Perú.
No hay comentarios :
Publicar un comentario