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

operar numeros largos

Estas en el tema de operar numeros largos en el foro de Java en Foros del Web. Hola tengo el siguiente problema, tengo lo siguiente: float miVariable=4800000000; el cual si lo lanzo me lanza un error solución float miVariable=4800000000l; resultado: 4.8E9 ahora ...
  #1 (permalink)  
Antiguo 16/10/2008, 13:56
 
Fecha de Ingreso: enero-2006
Mensajes: 121
Antigüedad: 18 años, 3 meses
Puntos: 1
Exclamación operar numeros largos

Hola tengo el siguiente problema, tengo lo siguiente:

float miVariable=4800000000;

el cual si lo lanzo me lanza un error

solución

float miVariable=4800000000l;

resultado:
4.8E9

ahora quiero hacer una operacion simple
float nDato=miVariable-2;

a mi parecer deberia obtener
4799999998

pero sigue saliendo
4.8E9

Saludos y gracias desde ya por la ayuda que me puedan brindar
  #2 (permalink)  
Antiguo 16/10/2008, 19:01
Avatar de cptanalatriste  
Fecha de Ingreso: octubre-2008
Ubicación: Lima, Perú
Mensajes: 118
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: operar numeros largos

Parece un problema de precisión. Intenta con double (y si te impota bastante la precisión con BigDecimal); o si sólo son número eneteros con long.

Espero sea de ayuda,

Carlos G. Gavidia
SCJP - SCWCD
http://certified-es.blogspot.com/
  #3 (permalink)  
Antiguo 18/10/2008, 00:40
 
Fecha de Ingreso: septiembre-2008
Ubicación: Córdoba
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: operar numeros largos

Me parece que es como dice cptanalatriste

y en vez de float miVariable=4800000000l;
debería ir float miVariable=4800000000f;
o float miVariable=4800000000F;
no recuerdo si es con mayusculas o con minusculas, pero si no le pones la f al final da error de compilación ya que el compilador supone que es un double.
Saludos...
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 16:38.