Java - redondear

 
Vista:

redondear

Publicado por meg (5 intervenciones) el 24/01/2007 17:17:34
Hola, tengo un numero decimal que quiero redondear, pero el redondeo no es siempre de dos, como le indico en la funcion round cuantos decimales quiero redondear??
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:redondear

Publicado por Tom (1559 intervenciones) el 24/01/2007 18:28:52
Pues no sé, pero si tomas la parte decimal, la multiplicas por 10 elevado a número de dígitos, la redondeas, la divides otra vez por 10 elevado... y se la sumas a la parte entera, ya lo tienes.

Por cierto, lo del redondeo de dos no lo entiendo.
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
Con BigDecimal se puede:

BigDecimal redondeado = bigDec.setScale(numDeDecimales);
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

RE:redondear

Publicado por chuidiang (950 intervenciones) el 25/01/2007 00:05:41
Hola:

Normalmente el redondeo es solo para ver en pantalla. Puedes usar la clase DecimalNumber http://www.chuidiang.com/chuwiki/index.php?title=DecimalFormat que te permite escribir con el número de decimales que quieras.

Si lo que quieres es un redondeo de verdad en el contenido de la variable, lo que te dice Tom te puede servir. Si quieres, por ejemplo, dos decimales, multiplica con 100, quedate la parte entera y vuelve a dividir por 100

double valorRedondeado = Math.round(valor*100)/100.0;

Se bueno.
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:redondear

Publicado por meg (5 intervenciones) el 25/01/2007 09:42:41
no lo entendido bien, yo tengo por ejemplo 55,347, y quiero que redondee dos decimales es decir, que quedara 55,35.

double decimal=347;
double lon= Math.pow(1,decimal.length());
decimal=decimal/lon;

decimal= Math.round(decimal);
decimal= decimal*lon;

Sería algo así???
Pero si yo ahora tengo 55,3478 y quiero tedondear tres decimales y que quede 55,348, que haria????
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:redondear

Publicado por Tom (1559 intervenciones) el 25/01/2007 09:55:36
separas el numero en parte decimal y entera:
55 + 0,3478
Tomas la parte decimal y la multiplicas por 10 ^3, queda 347,8
Redondeas, queda 348 y lo divides por 10^3. Queda 0,348
Vuelves a sumar las partes, queda 55,348
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