Conversion de formatos
Publicado por devc (1 intervención) el 01/04/2009 17:36:42
Hola!
Soy nuevo en el foro.
Hace un par de días que me tiene mal el formateo de numeros.
Estoy usando la clase DecimalFormat y NumberFormat, y no logro lo que necesito.
Su`pongamos un ejemplo, tengo el número: 291109.59375 y lo quiero pasar a float para que me devuelva 291109.6 por lo tanto lo fuerzo con
<(float) numero> lo cual logro que convierte a 291109.6 entonces si uso la clase
NumberFormat formatter = new DecimalFormat("###,###,##0.00");
me debería devolver 291,109.60 pero me sigue devolviendo 291,109.59
Entonces para asegurarme que realmente tengo un 291109.6 lo que hice fue pasarlo a un String y volver a convertirlo a float con Float.parseFloat, pero lo mismo, cuando lo intento formatear al resultado de traerlo de un String, me vuelve a poner el 291,109.59 al final.
Algún consejo? Aca les dejo el codigo de lo que hice.
Gracias
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class Decimal {
public static void main(String[] args) {
NumberFormat formatter = new DecimalFormat("###,###,##0.00");
double num = 291109.59375;
// double num = 291109.6;
String strNum;
float volverNum;
strNum = String.valueOf( (float)num );
volverNum = Float.parseFloat( strNum );
// volverNum = Float.parseFloat( strAux );
System.out.println("1 Numero double como viene -> " + num );
System.out.println("2 Numero double formateado -> " + formatter.format( num ));
System.out.println("3 num pasado a cadena ------> " + strNum );
System.out.println("4 num de cadena a float ----> " + formatter.format( volverNum ));
}
}
Soy nuevo en el foro.
Hace un par de días que me tiene mal el formateo de numeros.
Estoy usando la clase DecimalFormat y NumberFormat, y no logro lo que necesito.
Su`pongamos un ejemplo, tengo el número: 291109.59375 y lo quiero pasar a float para que me devuelva 291109.6 por lo tanto lo fuerzo con
<(float) numero> lo cual logro que convierte a 291109.6 entonces si uso la clase
NumberFormat formatter = new DecimalFormat("###,###,##0.00");
me debería devolver 291,109.60 pero me sigue devolviendo 291,109.59
Entonces para asegurarme que realmente tengo un 291109.6 lo que hice fue pasarlo a un String y volver a convertirlo a float con Float.parseFloat, pero lo mismo, cuando lo intento formatear al resultado de traerlo de un String, me vuelve a poner el 291,109.59 al final.
Algún consejo? Aca les dejo el codigo de lo que hice.
Gracias
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class Decimal {
public static void main(String[] args) {
NumberFormat formatter = new DecimalFormat("###,###,##0.00");
double num = 291109.59375;
// double num = 291109.6;
String strNum;
float volverNum;
strNum = String.valueOf( (float)num );
volverNum = Float.parseFloat( strNum );
// volverNum = Float.parseFloat( strAux );
System.out.println("1 Numero double como viene -> " + num );
System.out.println("2 Numero double formateado -> " + formatter.format( num ));
System.out.println("3 num pasado a cadena ------> " + strNum );
System.out.println("4 num de cadena a float ----> " + formatter.format( volverNum ));
}
}
Valora esta pregunta


0