Convertir Double Con Formato Científico A String En Java (Solucionado)

Higarigaoka - Odaiba, Sin comentarios
Hola,

Si alguna vez, les ha pasado que están convirtiendo un número muy grande en Java con Double.parseDouble("10000000") y al convertirlo imprime "1E7", esto se debe a que la conversión dejo el número con formato científico. 


Para obtener el número real, se debe usar la clase DecimalFormat en java, de la siguiente manera:

import java.text.DecimalFormat; 
import java.util.Locale;

/**
* Metodo encargado de convertir un numero Double con formato cientifico a un String normal.
* @param bdDoubleFC Define el numero double a formatear
* @return un String con el numero
*/
public static String convertirDoubleFormatoCientificoADouble(double bdDoubleFC){

    Locale.setDefault(Locale.US);
    DecimalFormat numberNormal = new DecimalFormat("####");

    return numberNormal.format(bdDoubleFC);

}

Igualmente, se pueden agregar separadores como comas (,) o implementar decimales con punto flotante (.), de la siguiente forma:

/**
* Metodo encargado de convertir un numero Double con formato cientifico a un String normal.
* @param bdDoubleFC Define el numero double a formatear
* @return un String con el numero
*/
public static String convertirDoubleFormatoCientificoADouble2(double bdDoubleFC){

    Locale.setDefault(Locale.US);
    DecimalFormat numberNormal = new DecimalFormat("#,###.00");

    return numberNormal.format(bdDoubleFC);

}

El método main() que permite invocar el metodo convertirDoubleFormatoCientificoADouble(), sería así:

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

    //Forma 1 - numero con punto flotante
    double numeroFC = 286578432.33;

    //el sistema imprime: 286578432
    System.out.println("Forma 1 - numero con punto flotante: " + convertirDoubleFormatoCientificoADouble(numeroFC));

    //Forma 2 - notacion cientifica
    double numeroFC2 = 1E7;

    //el sistema imprime: 10000000
    System.out.println("Forma 2 - notacion científica: " + convertirDoubleFormatoCientificoADouble(numeroFC2));

}

Listo, eso es todo.

Basado en:

0 comentarios :

Publicar un comentario