lunes, 9 de noviembre de 2009

ActionScript 3: Convertir el punto decimal(.) en coma(,)

Cuando programamos, los números decimales esta siempre separados por un punto(.). Sin embargo los hispano parlantes nos vemos a veces obligados a mostrar los números decimales separados por una (,) ya que el punto, en español, es un separador de miles.

En actionscript no podemos utilizar números decimales separados por comas ya que nos da error.

Por eso es que generalmente realizo los calculos con números separados por puntos, pero los muestro con coma utilizando la siguiente acción sencilla: Separo los valores en un array y los vuelvo a juntar en una nueva variable:

1) Supongamos que tenemos la variable A que tiene un valor de 2.5

var A:Number = "2.5";

2) creo un array llamado decimal que va a contener todos los elementos de la variable A utilizando aprovechando el punto decimal como separador de elementos. De este modo, en el array decimal quedaran en la posición [0] el valor 2 y en la posición [1] el valor 5

var decimal:Array = String(A).split(".");

Ya puedo puner los valores en una nueva variable string con coma como separador decimal

var decimalComa:String = decimal[0] + "," + decimal[1];

Lo pruebo

trace(decimalComa);

y nos devolverá el número con coma: 2,5.

Cuando quiero asegurarme si el número de la variable es decimal o es un entero, para no poner una coma vacía hago un if que se asegure de que hay algo en la segunda posicion del array:

if (!decimal[1]) {
var decimalComa:String = decimal[0];
}else{
var decimalComa:String = decimal[0] + "," + decimal[1];
}

Esto mismo se puede hacer para convertir comas en puntos y funciona tanto para actionscript 3 como actionscript 2.