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

Long mas pequeño que lo especificado

Estas en el tema de Long mas pequeño que lo especificado en el foro de Java en Foros del Web. Esoty haciendo una pequeña aplicacion de potencia donde necesariamente el resultado me darn numeros enteros bastante grandes, para lo cual estoy utilizando tipos LONG, el ...
  #1 (permalink)  
Antiguo 23/10/2010, 10:51
 
Fecha de Ingreso: enero-2009
Mensajes: 24
Antigüedad: 15 años, 3 meses
Puntos: 0
Long mas pequeño que lo especificado

Esoty haciendo una pequeña aplicacion de potencia donde necesariamente el resultado me darn numeros enteros bastante grandes, para lo cual estoy utilizando tipos LONG, el cual segun veo en la especificacion JAVA

http://download.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

dan para numeros de hasta 9,223,372,036,854,775,807(inclusive), ahora bien, cuando los resultados de la operacion de potencia sobrepasan esos limites ocurren cosas como que la respuesta la tira en numeros negativos. Para solucionar esto quise crear una constante asi

private final long LIMITE = 9223372036854775807;

pero el netbeans 6.9.1 me da el mensaje de "integer number too large" a pesar de haber declarado la constante como LONG. Mi version de java es 1.6.0_20.

Gracias
  #2 (permalink)  
Antiguo 23/10/2010, 10:58
Avatar de calichecal  
Fecha de Ingreso: junio-2009
Ubicación: Colombia
Mensajes: 288
Antigüedad: 14 años, 10 meses
Puntos: 12
Respuesta: Long mas pequeño que lo especificado

Intenta guardar el constante en un String y ala hora de utilizarlo dado que el numero es tan grande, haces
la comparación carácter por carácter y por su código ansi.
__________________
Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad. -Einstein-
  #3 (permalink)  
Antiguo 23/10/2010, 11:01
 
Fecha de Ingreso: enero-2009
Mensajes: 24
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Long mas pequeño que lo especificado

Gracias, mas que todo el problema viene en la linea

private final long LIMITE = 9223372036854775807;

ahi me marca error el netbeans
  #4 (permalink)  
Antiguo 23/10/2010, 11:07
Avatar de calichecal  
Fecha de Ingreso: junio-2009
Ubicación: Colombia
Mensajes: 288
Antigüedad: 14 años, 10 meses
Puntos: 12
Respuesta: Long mas pequeño que lo especificado

Cita:
Iniciado por gatosnegros Ver Mensaje
Gracias, mas que todo el problema viene en la linea

private final long LIMITE = 9223372036854775807;

ahi me marca error el netbeans
capacidad long:
-2^63 hasta 2^63-1

si no me fallan los calculos equivalen a:
-922337203685477508 hasta 922337203685477507

mmm ahora que veo bien, te pasaste de los limites, hay esta tu error.
__________________
Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad. -Einstein-

Última edición por calichecal; 23/10/2010 a las 11:13
  #5 (permalink)  
Antiguo 23/10/2010, 13:10
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Long mas pequeño que lo especificado

private final long LIMITE = 9223372036854775807L;
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #6 (permalink)  
Antiguo 25/10/2010, 17:46
 
Fecha de Ingreso: enero-2009
Mensajes: 24
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Long mas pequeño que lo especificado

Cita:
Iniciado por Xerelo Ver Mensaje
private final long LIMITE = 9223372036854775807L;
Gracias, Bro...
  #7 (permalink)  
Antiguo 26/10/2010, 00:31
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Long mas pequeño que lo especificado

¿Y no es más sencillo usar Long.MAX_VALUE?
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #8 (permalink)  
Antiguo 26/10/2010, 00:55
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Long mas pequeño que lo especificado

Uis que constantes más boniticas :P

/**
* Constant for the maximum {@code long} value, 2<sup>63</sup>-1.
*/
public static final long MAX_VALUE = 0x7FFFFFFFFFFFFFFFL;

/**
* Constant for the minimum {@code long} value, -2<sup>63</sup>.
*/
public static final long MIN_VALUE = 0x8000000000000000L;

Etiquetas: long, mas
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 05:51.