Java - Operaciones con Flotantes

 
Vista:

Operaciones con Flotantes

Publicado por tzener (5 intervenciones) el 03/02/2005 20:11:46
Hola buen dia.. a ver si alguien puede ayudarme con esto... Tengo una variable float a la que le asigno un numero, el problema es que la variable no siempre toma el numero exacto

float a = 353761.11f;
System.out.print(a);

Me imprime 353761.12

El problema no es tanto la impresion, dado que cuento con rutinas para dar formato al numero, el problema es que tengo que hacer calculos con flotantes y cuya exactitud debe ser de dos decimales, esto me crea un problema porque siempre me queda defasado el resultado final en una o dos centésimas. ¿Hay alguna manera para hacer que me tome el valor exacto(al menos en los dos decimales) que le estoy dando en el código?.

Muchas gracias
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

RE:Operaciones con Flotantes

Publicado por i92jurir (64 intervenciones) el 03/02/2005 22:34:22
Hola, si declaras la variable 'double' no tendras problemas. Tambien hay otra forma de que las operaciones de punto flotante se calculen de forma exacta. Es con 'strictfp' en el metodo que las usa pero no estoy del todo seguro.
Saludos
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

RE:Operaciones con Flotantes

Publicado por tzener (5 intervenciones) el 07/02/2005 20:00:44
Hola gracias... ya solucione el problema... dejo el codigo

double value = 353671.06;
BigDecimal bd = new BigDecimal(value);
bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
System.out.println(bd.toString());

este tipo de dato nos permite configurar de que manera queremos hacer el redondeo y con cuantos lugares decimales....
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