![]() |
|
| 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 |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
|
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?
|
|
|
|
#2
|
||||
|
||||
|
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 |
| Gracias de parte de: | ||
|
#3
|
|
Se me ocurre una idea.
Podrías hacer un recorte de decimales así: Código:
firstnumber = 27.72917184; number = round(number, 6); Luego haces: Código:
int number2 = number*(10*6) 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);
}
Código:
Toast.makeText(this, String.valueOf(finalnumber), Toast.LENGTH_LONG).show(); 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í. Última edición por wolfcat90 Día 06/03/15 a las 10:31:15 |
| Gracias de parte de: | ||
|
#4
|
|
Gracias a los dos en cuanto pueda lo pruebo
|
|
#5
|
|
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();
}
|
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 20:24:03 (GMT +1)
HTCMania: líderes desde el 2007





