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

int en lugar de String

Estas en el tema de int en lugar de String en el foro de Java en Foros del Web. hola tengo 1 select q recibe varias claves y hace su consulta por medio de: Código: String s : request.getParameterValues("clave")) a su vez tengo varias ...
  #1 (permalink)  
Antiguo 30/09/2010, 12:49
Avatar de sanchezg  
Fecha de Ingreso: abril-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
int en lugar de String

hola tengo 1 select q recibe varias claves y hace su consulta por medio de:

Código:
String s : request.getParameterValues("clave"))
a su vez tengo varias cantidades correspondientes a cada precio obtenido de la consulta de cada, y necesito multiplicarlos:
Código:
float precio = tabla.getFloat(3);
int cantidad = Integer.parseInt(request.getParameter("cantidad"));
float total=precio* cantidad;
pero al recibir la cantidad de esta forma: Integer.parseInt(request.getParameter("cantidad")) ; solo hace la multiplicacion con el 1er parametro recibido, no me toma ninguna otra cantidad

como podria hacer un String s : request.getParameterValues("clave")) pero pata int???????????

ojala me puedan ayudar gracias
  #2 (permalink)  
Antiguo 30/09/2010, 13:58
 
Fecha de Ingreso: septiembre-2010
Mensajes: 5
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: int en lugar de String

Hola Sanchezg:

No se si he entendido bien lo que preguntas.
Vamos a ver si es esto. La ide es que tienes un select con varias opciones y puedes realizar una selección múltiple sobre el mismo.
Y lo que deseas es recibir todos esos valores por separado y luego multiplicarlos por el valor que tienes en esa tabla.

Para hacer eso necesitas utilizar el procedimiento getParameterValues del objeto request. Y esto te devuelve un String []

Si el objeto que tienes en el formulario se llama cantidad sería algo así:

Código:
String [] valores = request.getParameterValues("cantidad");
for (int i = 0; i < valores.length; i++)
{
     float precio = tabla.getFloat(i);
     int cantidad = Integer.parseInt(valores[i]);
     float total = precio * cantidad;

     ..... y aquí heces lo que quieras con ese total
}
Pero esto implica que los valores que recibes deben estar asociados en el mismo orden que la tabla de valores float que tienes.

A ver si esto te sirve.

Saludos.

Filemute
  #3 (permalink)  
Antiguo 05/10/2010, 12:10
Avatar de sanchezg  
Fecha de Ingreso: abril-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: int en lugar de String

jajaja gracias por tu ayuda pero estoy muy guey jajaj porq ahora lo q no me jala son todo los precios :s mi codigo es:

Código:
String SQLString = "SELECT TOP 10 * FROM conceptos";

if (request.getParameterValues("clave").length > 0 ) {
    SQLString = "SELECT * FROM conceptos WHERE clave IN (";
    for (String s : request.getParameterValues("clave")) {
        SQLString += "\'" + s + "\', ";
 	
	}
    SQLString = SQLString.substring(0, SQLString.lastIndexOf(',')) + ")";
}

try { tabla = instruccion.executeQuery(SQLString);
while (tabla.next()) {

float precio = tabla.getFloat(3);
String [] valores = request.getParameterValues("cantidad");

for (int i = 0; i < valores.length; i++)
{
     int cantidad = Integer.parseInt(valores[i]);
     float total = precio * cantidad;

out.println("PRECIO:"+precio+"");
out.println("cantidad:"+cantidad+"");
out.println("total:"+total+"");
}
y me imprime:
PRECIO:10.0 cantidad:3 total:30.0
PRECIO:10.0 cantidad:1 total:10.0
PRECIO:10.0 cantidad:2 total:20.0
cuando segun las claves q consulte precio deberia de ser 10.00, 20.00 y 30.00
  #4 (permalink)  
Antiguo 05/10/2010, 18:25
 
Fecha de Ingreso: octubre-2010
Mensajes: 9
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: int en lugar de String

Cita:
y me imprime:
PRECIO:10.0 cantidad:3 total:30.0
PRECIO:10.0 cantidad:1 total:10.0
PRECIO:10.0 cantidad:2 total:20.0
cuando segun las claves q consulte precio deberia de ser 10.00, 20.00 y 30.00
A lo mejor soy yo que me he levantado espeso, pero juraría que te imprime justamente lo que tú quieres...
  #5 (permalink)  
Antiguo 06/10/2010, 01:03
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: int en lugar de String

El tema es que las cantidades no le vienen ordenadas... Para que ocurra eso desde la jsp el primer elemento cantidad deberia tener 1, el segundo 2 y el tercero 3...

:/
  #6 (permalink)  
Antiguo 06/10/2010, 09:40
Avatar de sanchezg  
Fecha de Ingreso: abril-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: int en lugar de String

sip lo q pasa es q precio no debe de ser en todos 10.00, debe de ser 10.00, 20.00 y 30.00 y por lo tanto el total debe de seer 30.00, 20.00 y 60.00.
esq en
Código HTML:
Ver original
  1. float precio = tabla.getFloat(3);
me trae unicamente el valor de la primera consulta y no se sigue con el valor correspondiente a las demas claves de la consulta
  #7 (permalink)  
Antiguo 06/10/2010, 09:54
Avatar de sanchezg  
Fecha de Ingreso: abril-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: int en lugar de String

si se q soy muy mala explicandome jaja pero intentare ser menos rollosa ahi va...
mi consulta fue SELECT * FROM conceptos WHERE clave IN (1.2.3);
la respuesta correcta de esta consulta debe de ser:
clave=1,2,3
concepto=cd, impresion, internet
precio=10.00, 20.00,30.00
y a su vez se eligio una cantidad para cada clave q fue de: "3" (tres cd's con precio de 10.00 q da un total de 30.00), 1(una impresion con precio de: 20.00 q da un total de 20.00) y 2 (dos internet con precio de 30.00 q da un total de 60.00)


pero unicamente me trae los valores correspondientes a la primera clave y la multiplica por todas las cantidades q se metieron
PRECIO:10.0 cantidad:3 total:30.0
PRECIO:10.0 cantidad:1 total:10.0
PRECIO:10.0 cantidad:2 total:20.0

lo correcto seria:
PRECIO:10.0 cantidad:3 total:30.0
PRECIO:20.0 cantidad:1 total:20.0
PRECIO:30.0 cantidad:2 total:60.0
  #8 (permalink)  
Antiguo 06/10/2010, 10:00
Avatar de sanchezg  
Fecha de Ingreso: abril-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: int en lugar de String

no se si deba meter ambos for en el primero :s no se como seria ojala puedan ayudarme gracias

Código HTML:
Ver original
  1. if (request.getParameterValues("clave").length > 0 ) {
  2.     SQLString = "SELECT * FROM conceptos WHERE clave IN (";
  3.     for (String s : request.getParameterValues("clave")) {
  4.         SQLString += "\'" + s + "\', ";
  5.    
  6.     }
  7.     SQLString = SQLString.substring(0, SQLString.lastIndexOf(',')) + ")";
  8. }}

Código HTML:
Ver original
  1. String [] valores = request.getParameterValues("cantidad");
  2. for (int i = 0; i < valores.length; i++)
  3. {
  4.     float precio = tabla.getFloat(i);
  5.     int cantidad = Integer.parseInt(valores[i]);
  6.     float total = precio * cantidad;
  7. }

Última edición por sanchezg; 06/10/2010 a las 11:13

Etiquetas: int, string
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 06:06.