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

Super urgente!!

Estas en el tema de Super urgente!! en el foro de Java en Foros del Web. Tengo una variable double Neto = 0.00; y un arreglo: int[] Desgloce= {1000,500,200,100,50,20,10,5,1}; int[] Resultado= {0,0,0,0,0,0,0,0,0}; Ahora tengo la siguiente operacion: Resultado[i] = (Neto / ...
  #1 (permalink)  
Antiguo 27/02/2006, 16:50
 
Fecha de Ingreso: enero-2006
Mensajes: 5
Antigüedad: 18 años, 3 meses
Puntos: 0
Super urgente!!

Tengo una variable double Neto = 0.00; y un arreglo:

int[] Desgloce= {1000,500,200,100,50,20,10,5,1};

int[] Resultado= {0,0,0,0,0,0,0,0,0};

Ahora tengo la siguiente operacion:

Resultado[i] = (Neto / Desgloce[i]);

Neto = (Neto - (Resultado[i] * Desgloce[i]));

Pero cuando corro mi programa me manda el siguiente error:

An error occurred at line: 32 in the jsp file: /Impresion/IMPRESION.jsp
Generated servlet error:
[javac] /usr/local/SUNWas/domains/domain1/generated/jsp/j2ee-modules/nomina/org/apache/jsp/Impresion/IMPRESION_jsp.java:294: possible loss of precision
[javac] found : double
[javac] required: int
[javac] Resultado[i] = (Neto / Desgloce[i]);
[javac] ^
[javac] 1 error

como convierto ese doble a entero??

Un chavo me recomendo hacer un cast: Resultado[i] = (int)(Neto / Desgloce[i]); al hacerlo ya no me genera error pero ahora solo me toma la parte decimal de mi resultado y la parte entera me la pone en ceros por ejemplo: 0.1876985..porfa diganme que hacer
  #2 (permalink)  
Antiguo 27/02/2006, 17:34
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Un entero no tiene decimales, así que no puedes poner un numero con decimales en un entero sin que se pierdan.
  #3 (permalink)  
Antiguo 27/02/2006, 17:57
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Hola monze . ¿Por que no lo intentas así ?
Código:
double Neto = 0.00;
int[] Desgloce= {1000,500,200,100,50,20,10,5,1};
//int[] Resultado= {0,0,0,0,0,0,0,0,0};
double elResultado = {0,0,0,0,0,0,0,0,0};

elResultado[i] = (Neto / Desgloce[i]);

Neto = (Neto - (elResultado[i] * Desgloce[i]));
  #4 (permalink)  
Antiguo 28/02/2006, 12:21
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
Y si no lo que quieres es usar solo objetos de la clase primitiva int . Entonces tendrias que hacer :

Código:
double Neto = 0.00;
int[] Desgloce= {1000,500,200,100,50,20,10,5,1};
int[] ResultadoParteEntera= {0,0,0,0,0,0,0,0,0};
int[] ResultadoParteDecimal= {0,0,0,0,0,0,0,0,0};
double[] elResultado = {0,0,0,0,0,0,0,0,0};

ResultadoParteEntera[i] = (int)(Neto / Desgloce[i]);
ResultadoParteDecimal[i] = (int)(Neto* 1000 / Desgloce[i])-(ResultadoParteEntera[i] * 1000);

Neto = Neto - (ResultadoParteEntera[i] * Desgloce[i]) - ((ResultadoParteDecimal[i]/1000) * Desgloce[i])
No lo he probado así que depuralo pero la idea es que , ya que me dices que lo deseas hacer con objetos int ... pues es que por un lado calculas la parte entera y por otro la decimal con 3 posiciones

Suerte ...
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 04:48.