1 votos

Cómo imprimir 12345678 en vez de 1.2345678E7 en java?

Cuando imprimo el resultado de un cálculo que me devuelve un long en java, aparece en pantalla el número 1.2345678E7, necesito que aparezca el número completo (12345678). Qué debo hacer?

1voto

Jesus Marquez Puntos 10

No se puede quitar el exponencial al valor que ocupas, recuerda que todas las variables tienen un limite de longitud, si es posible convierte ese valor en un double y lo conviertes a una cadena, despues le agregas la cantidad de ceros para extender el resultado.

Te paso el siguiente ejemplo, espero que te ayude.

private String ObtenerValorSinExponencial( double numero) {
        string numeroExponencial = numero.ToString();
        string [] valorAdyacente;
        string [] valorSubyacente;
        int cicloPermitido = 0;

        if (numeroExponencial.IndexOf("E") != -1) {
            valorAdyacente = numeroExponencial.Split("." );
            valorSubyacente = valorAdyacente[1].Split( "E" );
            numeroExponencial = valorAdyacente[0].ToString() + valorSubyacente[0].ToString();
            cicloPermitido = valorSubyacente[0].Length;
            cicloPermitido = Integer.parseInt(valorSubyacente[1]) - cicloPermitido;
            for (var x = 0; x < cicloPermitido; x++) {
                numeroExponencial += "0";
            }
        } 
        return numeroExponencial;
    }

Nota: Con esta función te puede ayudar para diferentes tipos de exponenciales.

0voto

Raulo Puntos 10

Para esto hay que convertir la variable "int" o "long" en un "BigInteger". Esta última admite todos los valores posibles.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: