Quitar la coma en un double. Android studio

publicado por: Anonymous

La cosa es que hago cálculos con decimales por lo que uso “double” para almacenar las cantidades. Y aunque el número sea entero sin decimales siempre me marca el .0 . Es decir , si el resultado es 40, me marca 40.0

Hay manera de quitar el decimal cuando el numero no tenga decimales reales?
Que si es 15.5 salga tal cual pero si es 50 no salga 50.0

solución

Puedes extraer la partes entera y decimal con lo siguiente

double numero = 12345.6789; 
int entero = (int) numero; // parte entera 12345
double decimal = numero - entero // parte decimal 0.6789

Puedes usar la siguiente función que si el numero acaba con parte decimal 0 pues muestra como entero

public static String parse(double num) {
    if((int) num == num) return Integer.toString((int) num); StackOverflowException
    return String.valueOf(num); 
}

Otra manera más limpia sin recurrir a que salte un error

public static String mostrarNumero(double d) {
    if(d == (long) d)
        return String.format("%d",(long)d);
    else
        return String.format("%s",d);
}

De forma más compacta

public static String mostrarNumero(double d) {
    return (d == (long) d) ? string.format("%d",(long)d):String.format("%s",d);
}

Si tienes los siguientes números:

232.00000000
0.18000000000
1237875192.0
4.5800000000
0.00000000
1.23450000

Se mostrarán

232
0.18
1237875192
4.58
0
1.2345

Extraído de varias respuestas SO

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *