Test Foro de elhacker.net SMF 2.1

Programación => Programación General => Java => Mensaje iniciado por: josco en 19 Septiembre 2010, 20:40 PM

Título: Se puede aquitar el E en un resultado double?
Publicado por: josco en 19 Septiembre 2010, 20:40 PM
hola que tal quisiera saber si puedo mostrar un resultado sin que me salga elevado a nada osea cunado por ejemplo me pone 4.31235656767E-5 quisiera que saliera  .0000431235656767
Título: Re: Se puede aquitar el E en un resultado double?
Publicado por: Flynker en 19 Septiembre 2010, 22:20 PM
¿De que tipo son las variables que utilizas?
soy nuevo en Java, pero de hecho acabo de leer que existen las clases BigInteger y BigDecimal... dice el libro que son Precisión arbitraria no se si te sirva de algo :rolleyes:

http://translate.google.com.mx/translate?hl=es&langpair=en%7Ces&u=http://download.oracle.com/javase/1.4.2/docs/api/java/math/BigInteger.html

http://translate.google.com.mx/translate?hl=es&langpair=en%7Ces&u=http://download.oracle.com/javase/1.4.2/docs/api/java/math/BigDecimal.html

Saludos
Título: Any
Publicado por: any en 19 Septiembre 2010, 22:41 PM
 >:(
Título: Re: Se puede aquitar el E en un resultado double?
Publicado por: Shell Root en 19 Septiembre 2010, 22:46 PM
Código (java) [Seleccionar]
public class PoC{
    public static void main(String[] args){

        Double sNumero = 4.31235656767E-5;
        String sCadena = "";

        sCadena = Double.toString(sNumero);
        sCadena = sCadena.replaceAll("(E-[0-9])", "");

        sNumero = Double.parseDouble(sCadena);       
        System.out.println(sNumero);

    }
}


Resultado:
Código (PoC) [Seleccionar]
shellroot@alex-laptop:~/Escritorio$ javac PoC.java
shellroot@alex-laptop:~/Escritorio$ java PoC
4.31235656767
shellroot@alex-laptop:~/Escritorio$
Título: Re: Se puede aquitar el E en un resultado double?
Publicado por: xassiz~ en 19 Septiembre 2010, 22:54 PM
Cita de: Shell Root en 19 Septiembre 2010, 22:46 PM
Código (java) [Seleccionar]
public class PoC{
    public static void main(String[] args){

        Double sNumero = 4.31235656767E-5;
        String sCadena = "";

        sCadena = Double.toString(sNumero);
        sCadena = sCadena.replaceAll("(E-[0-9])", "");

        sNumero = Double.parseDouble(sCadena);       
        System.out.println(sNumero);

    }
}


Resultado:
Código (PoC) [Seleccionar]
shellroot@alex-laptop:~/Escritorio$ javac PoC.java
shellroot@alex-laptop:~/Escritorio$ java PoC
4.31235656767
shellroot@alex-laptop:~/Escritorio$

:xD :xD :xD

Se supone que tendrías que elevar el número primero.
Título: Re: Se puede aquitar el E en un resultado double?
Publicado por: Shell Root en 19 Septiembre 2010, 22:56 PM
Cita de: bug_over en 19 Septiembre 2010, 22:41 PMEditado la solución de Shell Root es mejor.
eheheheheh!  >:D
Título: Any
Publicado por: any en 19 Septiembre 2010, 23:09 PM
 >:(
Título: Re: Se puede aquitar el E en un resultado double?
Publicado por: xassiz~ en 19 Septiembre 2010, 23:19 PM
Cita de: Shell Root en 19 Septiembre 2010, 22:56 PM
Cita de: bug_over en 19 Septiembre 2010, 22:41 PMEditado la solución de Shell Root es mejor.
eheheheheh!  >:D

LOL

Cita de: josco en 19 Septiembre 2010, 20:40 PM
4.31235656767E-5 quisiera que saliera  .0000431235656767

:xD
Título: Any
Publicado por: any en 19 Septiembre 2010, 23:26 PM
 >:(
Título: Re: Se puede aquitar el E en un resultado double?
Publicado por: xassiz~ en 19 Septiembre 2010, 23:28 PM
Cita de: bug_over en 19 Septiembre 2010, 23:26 PM
Por lo menos aporté una idea.  :-*
No, tu code está bien, yo comento con Shell Root, que su code no daba el resultado final esperado :rolleyes:
Título: Any
Publicado por: any en 19 Septiembre 2010, 23:36 PM
 >:(
Título: Re: Se puede aquitar el E en un resultado double?
Publicado por: 1mpuls0 en 19 Septiembre 2010, 23:55 PM
Lo que Josco quiere es reemplazar la notación cientifica, y asi mostrar el numero "completo"

Código (java) [Seleccionar]

/*
*Autor: 1mpuls0
**/

import java.text.DecimalFormat;

public class FormatoNumero {
   
   public static void main(String[] args) {
    double numero = .0000431235656767;
    System.out.println(formatoDecimal(numero, 15));
   }
   
   public static String formatoDecimal(double d, int precision) {
String miFormato = "###,###,###,###,##0";

if (precision == 0) {
DecimalFormat df = new DecimalFormat(miFormato);
return df.format(d);
}

miFormato = "###,###,###,###,##0.";

for(int x= 0; x < precision; x++)
miFormato = miFormato + "0";

DecimalFormat df = new DecimalFormat(miFormato);

return df.format(d);
}
}


Un saludo
Título: Any
Publicado por: any en 20 Septiembre 2010, 01:03 AM
 >:(


Título: Re: Se puede aquitar el E en un resultado double?
Publicado por: josco en 20 Septiembre 2010, 01:51 AM
gracias Darhius  asi era  ;D ;D ;D