Te paso el codigo:
<code>
class NumberMixin{
private var __zeros:Number = 2;
public static function decorate():Void{
var fooInst:NumberMixin = new NumberMixin();
if(arguments.length){
fooInst.__zeros = Number(arguments[0]);
}
Number.prototype.__zeros = fooInst.__zeros;
Number.prototype.__toString = Number.prototype.toString;
Number.prototype.toString = fooInst.overwrite;
}
public static function undecorate():Void{
Number.prototype.toString = Number.prototype.__toString;
delete(Number.prototype.__zeros);
}
private function overwrite():String{
var e:Array = (this+"").split(".");
var addZeros:Function = function(n:Number,c:Number):String{
var result:String = n+"";
for(var i:Number = 1;i<=c;i++){
result += "0";
}
return result;
}
if(e.length==0){
return "0,"+addZeros(0,__zeros-1);
}
else if(e.length==1){
return e[0]+","+addZeros(0,__zeros-1);
}
else if(e[1].length < __zeros){
return e[0]+","+addZeros(e[1],__zeros-e[1].length);
}
else if(e[1].length > __zeros){
return e[0]+","+e[1].substring(0,__zeros);
}
else{
return e[0]+","+e[1];
}
return "";
}
}
</code>Y para probarlo:
<code>
NumberMixin.decorate(); var c = 0.1111; trace( c.toString() ); NumberMixin.undecorate(); trace( c.toString() );
</code>
Lo logico seria usar herencia tipica (o composicion), no modificar el prototype de Number, pero de esta manera puedes seguir usando literales, lo que es infinitamente mas comodo que tener que crear instancias.
un saludo
Joseba Alonso
www.sidedev.net
www.5dms.com
----- Original Message ----- From: "Pedro Alpera" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Monday, September 20, 2004 11:07 AM
Subject: [ASNativos] mostrar decimales siempre
Supongamos que quiero mostrar euros... siempre con dos decimales, incluso cuando su valor es cero en un campo de texto.
Es decir que un campo de texto pueda mostrar este tipo de datos:
23,22 122,00
El caso es que al ser cero el decimal, desaparece.
Y ahora el mas dificil todavia, quiero hacer esto sin que sea una cadena... es decir, que siga siendo un numero.
ea! ya esta el desafio del lunes. xD
---------------------------------- Lista ASNativos:[EMAIL PROTECTED] http://www.5dms.com/listas ----------------------------------

