Foro de elhacker.net

Programación => 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
  1. public class PoC{
  2.    public static void main(String[] args){
  3.  
  4.        Double sNumero = 4.31235656767E-5;
  5.        String sCadena = "";
  6.  
  7.        sCadena = Double.toString(sNumero);
  8.        sCadena = sCadena.replaceAll("(E-[0-9])", "");
  9.  
  10.        sNumero = Double.parseDouble(sCadena);        
  11.        System.out.println(sNumero);
  12.  
  13.    }
  14. }

Resultado:
Código
  1. shellroot@alex-laptop:~/Escritorio$ javac PoC.java
  2. shellroot@alex-laptop:~/Escritorio$ java PoC
  3. 4.31235656767
  4. 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
Código
  1. public class PoC{
  2.    public static void main(String[] args){
  3.  
  4.        Double sNumero = 4.31235656767E-5;
  5.        String sCadena = "";
  6.  
  7.        sCadena = Double.toString(sNumero);
  8.        sCadena = sCadena.replaceAll("(E-[0-9])", "");
  9.  
  10.        sNumero = Double.parseDouble(sCadena);        
  11.        System.out.println(sNumero);
  12.  
  13.    }
  14. }

Resultado:
Código
  1. shellroot@alex-laptop:~/Escritorio$ javac PoC.java
  2. shellroot@alex-laptop:~/Escritorio$ java PoC
  3. 4.31235656767
  4. 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
Editado 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
Editado la solución de Shell Root es mejor.
eheheheheh!  >:D

LOL

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
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
  1. /*
  2.  *Autor: 1mpuls0
  3.  **/
  4.  
  5. import java.text.DecimalFormat;
  6.  
  7. public class FormatoNumero {
  8.  
  9.    public static void main(String[] args) {
  10.     double numero = .0000431235656767;
  11.     System.out.println(formatoDecimal(numero, 15));
  12.    }
  13.  
  14.    public static String formatoDecimal(double d, int precision) {
  15. String miFormato = "###,###,###,###,##0";
  16.  
  17. if (precision == 0) {
  18. DecimalFormat df = new DecimalFormat(miFormato);
  19. return df.format(d);
  20. }
  21.  
  22. miFormato = "###,###,###,###,##0.";
  23.  
  24. for(int x= 0; x < precision; x++)
  25. miFormato = miFormato + "0";
  26.  
  27. DecimalFormat df = new DecimalFormat(miFormato);
  28.  
  29. return df.format(d);
  30. }
  31. }
  32.  

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