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.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s