Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 05/03/15, 18:44:07
Array

[xs_avatar]
carliquiss carliquiss no está en línea
DroidMaster en Youtube
 
Fecha de registro: dic 2014
Mensajes: 1,730
Modelo de smartphone: Mi Pad 4 / Mi Pad 5 / Lenovo Legion Y700
Tu operador: Movistar
Como redondear un double tras operar

Buenas veréis me gustaría redondear el resultado de una operación. Básicamente cojo dos doubles, operó con ellos y el resultado me gustaría redondearlo a 5 decimales. Me podríais explicar como implementar un método o alguna forma de hacerlo. Porque he visto un método que tienes que pasarle como parámetros un double que es el número a redondear y un int que es el número de decimales pero no se como puedo implementarlo a mi aplicación. Alguna ayuda?
Responder Con Cita


  #2  
Viejo 05/03/15, 20:44:42
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Así a bote pronto se me ocurre una chapuza, aunque seguro que hay alguna forma más "formal" de hacerlo.

Coges el double, lo multiplicas por 10^5 (o por el número de decimales que quieras), lo redondeas, y lo divides por 10^5
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 06/03/15, 10:22:49
Array

[xs_avatar]
wolfcat90 wolfcat90 no está en línea
Desarrollador
 
Fecha de registro: jun 2012
Mensajes: 445
Modelo de smartphone: Samsung Galaxy Trend Plus
Tu operador: Movistar
Se me ocurre una idea.
Podrías hacer un recorte de decimales así:
Código:
firstnumber = 27.72917184;
number = round(number, 6);
Te devolvería 27.729171
Luego haces:
Código:
int number2 = number*(10*6)
Y number pasaría a ser number2 y a tomar el valor de 27,729,171
El siguiente paso es tomar la ultima cifra y aproximar
Código:
#Tomo el número de cifras
int length = (int) Math.log10(number2) + 1; 
#Recorto la última cifra
int x = 100/lenght;
lastnumber = number2%x;
#Compruebo si es mayor, igual o menor que 5
if (lastnumber >= 5) {
finalnumber = round(firstnumber, 5)+0.00001;
} else {
finalnumber = round(firstnumber, 5);
}
Y acabamos mostrando el número en la pantalla:
Código:
Toast.makeText(this, String.valueOf(finalnumber), Toast.LENGTH_LONG).show();
Esperemos que funcione jejeje

PD: Es un apaño pero cumple su función.
No se si habrá algún fallo en el código, si no te lo soluciona coméntamelo. Los puntos son comas y las comas puntos, a diferencia de aquí.
__________________
Para aprender en Android hay que experimentar con él, pero no demasiado, queremos conservar nuestro movil

Última edición por wolfcat90 Día 06/03/15 a las 10:31:15.
Responder Con Cita
Gracias de parte de:
  #4  
Viejo 07/03/15, 00:57:01
Array

[xs_avatar]
carliquiss carliquiss no está en línea
DroidMaster en Youtube
 
Fecha de registro: dic 2014
Mensajes: 1,730
Modelo de smartphone: Mi Pad 4 / Mi Pad 5 / Lenovo Legion Y700
Tu operador: Movistar
Gracias a los dos en cuanto pueda lo pruebo
Responder Con Cita
  #5  
Viejo 07/03/15, 14:41:21
Array

[xs_avatar]
wolfcat90 wolfcat90 no está en línea
Desarrollador
 
Fecha de registro: jun 2012
Mensajes: 445
Modelo de smartphone: Samsung Galaxy Trend Plus
Tu operador: Movistar
Me edito, aquí tengo la solución:
Código:
public void calcular (View v) {
Float numeroextraido = Float.valueOf(editor.getText().toString());
DecimalFormat formato = new DecimalFormat("#.#####");
Float numeroconformato = Float.parseFloat(formato.format(numeroextraido).replace(",", "."));
    numeroconformato = numeroconformato * 100000;
int numero = Math.round(numeroconformato);
Float decimal = Float.valueOf(numero);
decimal = decimal / 100000;
Toast.makeText(this, String.valueOf(decimal), Toast.LENGTH_LONG).show();

}
__________________
Para aprender en Android hay que experimentar con él, pero no demasiado, queremos conservar nuestro movil
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 04:44:31 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /