Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Yawin on January 03, 2014, 11:15:25 PM

Title: Pasar de int a float
Post by: Yawin on January 03, 2014, 11:15:25 PM
Hola a todos. Tengo un problema importante y no consigo solucionarlo.
Quiero hacer el coseno de un ángulo, pero cos() sólo recibe float y angle es int. ¿Cómo puedo pasar de int a float?
Title: Re:Pasar de int a float
Post by: MythomizeR on January 04, 2014, 01:20:03 AM
Hola,

¿No te deja directamente?
¿Ni siquiera haciéndole un "cast" al dato?, por ejemplo:

cos((float)angulo);

No he visto una función que te convierta directamente, pero supongo que no tengas problema con el casting como te he dicho.

Otra opción:
cos(atof(itoa(angulo)));
Title: Re:Pasar de int a float
Post by: Yawin on January 04, 2014, 02:45:02 PM
Vale, al final el problema era que Bennu trabaja con los ángulos en miles de grados (180º=180000) y yo se lo pasaba en grados  ;D
Title: Re:Pasar de int a float
Post by: laghengar on January 04, 2014, 11:12:25 PM
Y los valores que te devuelve son correctos?
Title: Re:Pasar de int a float
Post by: Yawin on January 04, 2014, 11:27:03 PM
Ahora sí xDD Es que, claro, el coseno de 270 es -1 y me daba 0,00000... porque tenía que pasarle 270000 y yo le pasaba 270
Title: Re:Pasar de int a float
Post by: laghengar on January 05, 2014, 09:46:25 PM
ok, yo es que he tenido problemas con cos porque me devolvía valores erroneos, conociendo lo de ponerlo en miligrados. Daré por hecho que no me volverá a pasar. Gracias.
Title: Re:Pasar de int a float
Post by: Drumpi on January 10, 2014, 08:51:00 PM
Ojo: en Bennu hay dos módulos de funciones trigonométricas, si no recuerdo mal. Una usaba floats y otra ints, como hemos usado desde tiempos de DIV (mod_mathi y mod_math). Puedes usar una u otra en función de la que cargues ;)