Java - Problemas con decimales

 
Vista:
sin imagen de perfil
Val: 130
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Problemas con decimales

Publicado por Hector (56 intervenciones) el 06/12/2019 01:06:53
Hola amigos del foro he qui de nuevo molestando con una gran inquietud, estoy realizando una operación (División) y necesito que el resultado me muestre con dos decimales, pero no me resulta, estuve investigando como hacerlo pero tampoco pude, he aquí el código que estoy utilizando.
1
2
3
4
Double val4 = Double.parseDouble(txtsubtotal9.getText());
Double val5 = Double.parseDouble(txtuf.getText());
Long suma2 = Math.round(val4 / val5);
txtequivalencia.setText(suma2.toString());
donde
txtsubtotal9 = 275000
txtuf = 28065.38
por lo cual el resultado debe dar 9.79, pero me da un 10 ya que el long es para aproximar, y el double lo utilice pero me manda error, que debo hacer favor de ayudarme, me carga molestar pero necesito de tu ayuda y disculpen la molestia, en serio necesito ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Lawliet
Val: 653
Bronce
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Problemas con decimales

Publicado por Lawliet (303 intervenciones) el 06/12/2019 01:14:21
Hola!!!

Aquí un código de ejemplo, posteriormente, faltaría adecuarlo a tus necesidades.

1
2
3
DecimalFormat df = new DecimalFormat("#,##0.00");
Double number = 1598327.679521;
System.out.println(df.format(number));

Output
1
1,598,327.68

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos! :3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 130
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Problemas con decimales

Publicado por Hector (56 intervenciones) el 06/12/2019 15:14:28
Buenos días Lawliet te comento que fue lo primero que hice, al momento de investigar y me manda el error que no es compatible con el Double antes mencionado en las variables val y en la linea de la operación, que debo hacer si no es por molestar es porque necesito ayuda y eso que das es lo mismo que investigue y no funciona, disculpa que me descargue contigo pero de las veces que he necesitado de la ayuda en este foro solo una sola persona me ha ayudado de verdad los demás nada de nada, no creo que deba ser difícil este código pero me aburrí de los ejemplos que uno mismo encuentra en internet y además soy nuevo en este lenguaje si supiera no pediría ayuda para empezar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 653
Bronce
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Problemas con decimales

Publicado por Lawliet (303 intervenciones) el 06/12/2019 17:49:51
Hola!!!

Descuida, nadie nace sabiendo ;)

Aquí te doy una solución de muchas posibles, no digo que sea la optima pero por el resultado de las operaciones se me hizo la más practica.

1
2
3
4
5
6
7
8
9
DecimalFormat df = new DecimalFormat("#,##0.00");
String txtsubtotal9 = "275000";
String txtuf = "28065.38";
Double val4 = Double.parseDouble(txtsubtotal9);										// En este caso tu deberías pasar el valor de tu TextField.
Double val5 = Double.parseDouble(txtuf);											// En este caso tu deberías pasar el valor de tu TextField.
Double suma2 = val4 / val5;															// Omitimos el Math.round() ya que es el encargado de hacer el redondeo correspondiente. El resultado de la siguiente operación es el siguiente: 9.798548959607887
String format = suma2.toString().substring(0, suma2.toString().indexOf(".") + 3);	// Convertimos a String el resultado y tomamos solamente del punto 2 posiciones más a la derecha. El resultado sería el siguiente: 9.79
String txtequivalencia = df.format(Double.parseDouble(format));						// Finalmente nuestro String lo convertimos en Double para darle formato decimal; es decir, si el resultado de la operación nos da por ejemplo: 1239847.47, al convertirlo en Double con DecimalFormat el resultado sería el siguiente: 1,239,847.47
System.out.println(txtequivalencia);

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos! :3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar