Page 2 of 2

Re: Gemix permite casteo de datos?

Posted: Sat May 14, 2011 12:29 am
by erkosone
esque si le pongo int sale un numero extraño muy largo.

Re: Gemix permite casteo de datos?

Posted: Sat May 14, 2011 12:40 am
by GINO
Creo que había unos problemas con algún casteo, haber que dice Cictec. Pero bueno, la forma correcta es como en C (cuando este todo arreglado debería ser como en C quiero decir xD).

Re: Gemix permite casteo de datos?

Posted: Sat May 14, 2011 12:44 am
by erkosone
Ok perfect.

Si, ahora mismo pasa algo raro pasando de float a int, corrompe el munero.

Pero escrito al revés funciona bien y ya me sirve, cuando salga la nueva beta si se arregla ya lo corrijo en el programa, no problem ;)

Re: Gemix permite casteo de datos?

Posted: Sat May 14, 2011 1:07 am
by GINO
erkos... como dije antes, escrito al revés no es que funcione, es que es una operación inútil. No es el (float) lo que está convirtiendo la variable round a int, sino el casteo implícito del =, así que puedes escribirlo simplemente como var = round; ya que ponerle (float) a un float es redundante aparte de que puede despistar.

Re: Gemix permite casteo de datos?

Posted: Sat May 14, 2011 6:33 am
by erkosone
ok.

Re: Gemix permite casteo de datos?

Posted: Sat May 14, 2011 8:13 am
by CicTec
Hola erkos,

Lo he probado con la nueva beta, pero funciona todo bien, puedes probar este simple programa para confirmar ?:
[Codebox=gemix file=Untitled.gemix]
program test_casting;

global
int iv;
double dv;

begin
dv = 102345667.434343435534;
iv = (int)dv;

write_int(0, 160, 100, 4, &iv);

repeat
frame;
until(key(_esc));
end
[/Codebox]
Deberia dar como output el numero 102345667

Sobre el casting anterior que has hecho (var = (float)round), como ya te dijo GINO, es una operacion inutil ademas de ser erratica, porque estas casteando la variable da DOUBLE a FLOAT, si el numero es demasiado grande (en este caso no, pero puede pasar), al castearlo, saldra otro por la perdida de precision, a su vez este numero sera casteado implicitamente a INT.