Comunidad de diseño web y desarrollo en internet online

Cambiar la base de un numero con Number.toString();

¿Para que sirve el método "toString()" de el Objecto Number en Flash? En flash aparentemente no tiene ninguna utilidad, ya que flash no es estricto con la transformación de tipo de datos (Cast).
Ejemplo:

Código :

var price:Number = 150;
var msg:String = "El articulo cuesta $"+num+" dolares(usd).";
trace(msg); //El articulo cuesta $150 dolares(usd).

Si flash fuera estricto nos marcaría error a la hora de publicar, pero no puesto que flash hace el cast automático de numero a string. En vez de que nosotros tuviéramos que hacer esto:

Código :

var msg:String = "El articulo cuesta $"+num.toString()+" dolares(usd)."; 

O esto:

Código :

var msg:String = "El articulo cuesta $"+String(num)+" dolares(usd).";

Ese es en teoría el uso método toString. Pero el método toString puede convertir un numero en base 10 a cualquier base.

Flash no distingue la base de un numero, cualquier numero que tu pongas lo interpretara en base 10. Por ejemplo, si ponemos este código:

Código :

var hex:Number = 0xF;
trace(hex); //nos regresa 15
hex += 5;
trace(hex); //nos regresa 20

Como puedes ver flash sólo maneja decimales. El método toString() nos regresa nuestro numero convertido a cualquier base**.

¿Por que nos lo regresa como un string si es un numero?

Por lo mismo que dije arriba, flash solo puede manejar números en base 10, y cualquier numero que tenga una base mayor a 10 usa letras. Miren como convierto el numero 15 a varias bases

Código :

var num:Number = 15;
trace(num.toString(16)); //nos regresa "f"
num = 256;
trace(num.toString(2));//nos regresa "100000000"

Que fácil, pero ¿Que pasa si yo tengo un número en otra base y lo quiero convertir a base 10?
Es igual de fácil: hay una función global llamada parseInt(), la cual tiene dos parámetros

parseInt(number:String, base:Number);

El primero es el numero pero como un string, por lo que dijimos arriba, y el segundo es la base en la que esta el numero. Por ejemplo, aquí cambiaremos un numero binario a decimal:

Código :

var binary:String = "100000000";
var decimal:Number = parseInt(binary, 2);
trace(decimal); //nos regresa 256 


Nota: Flash solo puede hacer conversiones de base 2 a base 36.

Solo se puede hasta base 36 porque flash solo usa letras y números, y para cualquier base que sea mayor a 36 se requiere usar caracteres "extraños".

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate