Foros del Web » Programación para mayores de 30 ;) » C/C++ »

¿Por qué cero?

Estas en el tema de ¿Por qué cero? en el foro de C/C++ en Foros del Web. numero_aleatorio = (rand()%100); printf("%f,numero_aleatorio); <-- 26.000000 numero_aleatorio = (rand()%100)/100; printf("%f,numero_aleatorio); <-- 0.000000 Como es posible que de 0?? si es 26/100 !! en este caso ...
  #1 (permalink)  
Antiguo 13/08/2010, 04:15
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 14 años, 3 meses
Puntos: 0
¿Por qué cero?

numero_aleatorio = (rand()%100);
printf("%f,numero_aleatorio); <-- 26.000000
numero_aleatorio = (rand()%100)/100;
printf("%f,numero_aleatorio); <-- 0.000000

Como es posible que de 0?? si es 26/100 !! en este caso es 26, pero es un aleatorio de 0 a 100.

Última edición por Zunri; 13/08/2010 a las 06:39
  #2 (permalink)  
Antiguo 13/08/2010, 07:44
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: ¿Por qué cero?

Encontre tu problema. Tenes un problema de tipos.
(rand() % 100) es un entero.
100 es un entero
Por lo tanto entero / entero el compilador devuelve el entero (en este caso cero) y luego como lo tiene que asignar a un double lo covierte a double pero el cero.

Lo que tiene que hacer es convertir a uno de los dos terminos a float. Simplementes le agregas un "punto cero" al cien. De esta forma

(rand()%100) / 100.0;

Con funcion. Porque el 100 ahora esta representado como un float y no como un entero.

Adios
  #3 (permalink)  
Antiguo 13/08/2010, 07:50
 
Fecha de Ingreso: julio-2010
Mensajes: 216
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: ¿Por qué cero?

Muchisimas gracias Sam!

Etiquetas: cero
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 13:52.