Buenas, curiosamente estaba comparando 2 valores strings, uno de ellos lo habia pasado a string (era int) para que fueran del mismo tipo en la comparación.
int Score = 952;
say((string)Score) // Output: 952
say (Hiscore[9]._Score) // Output: 55000
// El IF se cumple pero si fueran enteros no lo haria porque no cumple la condición!!!!
IF((string)Score >= Hiscore[9]._Score)
say("Entre donde no debia");
END
Entiendo que esto ocurre porque al comparar 2 strings este hara la comparación con algun código interno de cada una, porque sabemos que 952 no es mayor que 55000.
Sobre esto me gustaria tener una aaclaración.
Logicamente para hacer la comparación tendria que pasar Hiscore[9]._Score que es una string, a entero, pero (int)Hiscore[9]._Score no funciona como en el otro caso.
Como puedo pasar un string a int para la correcta comparación ?
Grácias.
la compracion de string es correcta, el caracter 9 es mayor que 5, asi que es correcto que asi suceda comprando strings (no es ningun codigo interno) y la maldita autoconversion de bennu/fenix que nunca estuve de acuerdo, hace que se conviertan las expresiones.
con respecto a tu pregunta, atoi(string)
Muchas grácias. Comunidad puntual como siempre, da gusto :)