Foros del Web » Programación para mayores de 30 ;) » Java »

numeros muyyyy pequeños en java

Estas en el tema de numeros muyyyy pequeños en java en el foro de Java en Foros del Web. buenas nuevamente! Disculpen tengo un pequeño problema, es que estoy haciendo mi tesis ese es el gran problema jajaja.. bueno les explico estoy haciendo un ...
  #1 (permalink)  
Antiguo 03/03/2009, 15:29
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
numeros muyyyy pequeños en java

buenas nuevamente!

Disculpen tengo un pequeño problema, es que estoy haciendo mi tesis ese es el gran problema jajaja.. bueno les explico estoy haciendo un algortimo el cual bota numeros extremadamente pequeños basicamente tienden a 0 es logico, entonces mi pregunta es como hago para almacenarlos puesto que con una variable de tipo double me lo deja expresado como 0.0 y eso no me sirve.. sera que alguien tiene una idea y me pueden echar otra manito?
  #2 (permalink)  
Antiguo 03/03/2009, 15:37
Avatar de drac94  
Fecha de Ingreso: mayo-2008
Ubicación: México
Mensajes: 383
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: numeros muyyyy pequeños en java

checa la clase bigdecimal
  #3 (permalink)  
Antiguo 03/03/2009, 15:59
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: numeros muyyyy pequeños en java

¿Realmente necesitas números más pequeños que 4.9E-324? (Eso es un 0. seguido de 324 ceros y luego 49)
  #4 (permalink)  
Antiguo 03/03/2009, 16:20
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: numeros muyyyy pequeños en java

de verda no creo que sea mas pequeño que eso, pero el double me los pone como 0.0, si es que ese es el rango del tipo double
  #5 (permalink)  
Antiguo 03/03/2009, 16:51
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: numeros muyyyy pequeños en java

Código java:
Ver original
  1. class Minimo {
  2.     public static void main(String[] args) {
  3.         System.out.println(Double.longBitsToDouble(0x1L));
  4.     }
  5. }

Compila, ejecuta y verás.

Quizá el problema no está en usar doubles, sino en que estés haciendo mal algún tipo de operación o de conversión.
  #6 (permalink)  
Antiguo 03/03/2009, 18:13
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: numeros muyyyy pequeños en java

fijense que uno de los datos que me arroga es 2.25E-293 imaginense poes, sera que con el tipo DecimalFormat dejare de tener ese problema? porq despues de ese dato me comienza arrogar los clasicos 0.0 que me imagino que es tan proximo a cero que coloca cero por defecto... help me please
  #7 (permalink)  
Antiguo 04/03/2009, 02:09
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: numeros muyyyy pequeños en java

Hombre, de E-293 a E-324 aún hay un buen salto.

DecimalFormat no tiene mucho que ver con esto. Es sólo una clase para parsear formatos de números. En todo caso si realmente necesitas una precisión más pequeña que E-324, utiliza lo que te han dicho más arriba, BigDecimal. La idea de BigDecimal es trabajar por un lado con la mantisa, como decimal, y por otro con el exponente, aquí llamado la "escala". (Es decir, 2.25E-293 es 225 con una escala de 295.) Esto te ofrece una precisión arbitraria, pero tendrás que cambiar todos los cálculos que estás haciendo.


Por cierto, por curiosidad, ¿sobre qué trata la tesis? ¿Para qué son esos números tan pequeños?
  #8 (permalink)  
Antiguo 04/03/2009, 10:45
 
Fecha de Ingreso: agosto-2008
Mensajes: 16
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: numeros muyyyy pequeños en java

estoy realizando calculos estadisticos utilizando el algoritmo de monte carlo y se estiman gran cantidad de datos, entonces cuando alcanza este valor 2.25E-293 automaticamente me comienza a mostrar 0.0 y por lo que he visto es eso que se pasa de ese rango, utilizare BigDecimal a ver como me va muchas gracias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:04.