Problemas al convertir de String a Int en Actionscript


Solamente sucede en la versión 2.0
En la 3.0 al parecer ya solucionaron la marranada.

Estuve volviendome loco un par de horas intentando descubrir el motivo por el cual parseInt(“0120”) me devolvía 80 y no 120. Primero pensé que estaba dandome algún tipo de conversión hexadecimal sin sentido, pero tras un rato jugando con la calculadora vi que realmente lo que estaba haciendo era devolvermelo en octal.

Tras echar un ojo a la ayuda de Flash, encontré que por defecto, interpreta que todo número que comience por cero, es un octal. Menuda gracia. No se en que momento pensaron que esto sería útil dejarlo asi por defecto.

Asi que para solucionarlo, al convertir, usad el otro argumento de parseInt, que es el que te da la base del sistema que quieras usar. En mi caso, lo quería en el sistema decimal, por tanto

parseInt("0120",10) = 120

Quien use Number para convertir Strings en numérico, va a sufrir mucho, pero que muy mucho en la vida.

Anuncios