Regresar   Foro de marcianitos.org > Marcianeando > Cajón de sastre

 
 
Old 04-may-2007, 15:45   #1
Macarro
Administrador
 
Avatar de Macarro
Duda tonta programación, me estoy volviendo loco.

Buenas.

Me ha surgido un problema tontísimo en la programación del alpha front-end. A ver si alguno de vosotros tiene idea de qué puede fallar porque tengo la cabeza como un bombo y me voy a volver loco.

Print 1/1.99 ... y me sale 0.502512574 ¡bien!
Print 1/0.5 ... y sale 2, tambien bien.

Print 1/2 o cualquier cosa cuyo resultado sea menor de 0.5 y se me va a cero

Joder, es que no lo entiendo. Alguna idea de qué puede ser? ya se que de blitzmax por aquí nadie controla, pero como es algo tan tonto, quizás sepáis por dónde pueden ir los tiros, que yo no ando con compiladores ni cosas de estas.
   
Old 04-may-2007, 15:52   #2
Gocho
Marciano
 
Avatar de Gocho
Eso es por el tipo del dato.

Si son enteros es posible que el resultado tambien sea un entero 1/2 = 0,5 que redondeando a entero sale 0.

Y si lo declaras como real?
   
Old 04-may-2007, 15:56   #3
Macarro
Administrador
 
Avatar de Macarro
Está declarado como flotante... si fuese entero no podrían salir decimales nunca. Eso es lo que me extraña...

Vamos, que creando dos programas:

i:float

i=1/2
print i

o este segundo

print 1/2

obtengo el mismo resultado...así, sin más...

Y como me da un 0.000000000, entiendo que está todo correcto en cuanto a las definiicones de tipos de variables.
   
Old 04-may-2007, 16:18   #4
SuperJoc
Marciano
 
Avatar de SuperJoc
Quote:
Originalmente publicado por Macarro Ver post
i:float

i=1/2
print i

print 1/2

Y como me da un 0.000000000
Me da que te está tratando el 1 y el dos como enteros, prueba así:

x:float
y:float
i:float

x=1
y=2

i=x/y
print i

Otra opción (desconozco ese lenguaje blitzmax) para que sepa que son flotantes:

print 1.0/2.0

Ya me diras
   
Old 04-may-2007, 16:24   #5
Macarro
Administrador
 
Avatar de Macarro
Oleeeeeeeeeee!!! asignando los dos valores como flotantes, si sale... y como tengo que dividir 1/... con poner 1.0, solucionado

Muchísimas gracias, macho. Lo peor de todo es que esto yo ya lo debería saber, que hace años tuve problemas similares con el puto fortran :b