currency formatter ActionScript 3

Posted by Vineela | Flash, Flex, as3, utils | Wednesday 22 April 2009 12:00 am

The below code shows how to format currency string using Action Script


import druva.StringUtils;

trace(StringUtils.formatCurrency(4586.50, '@'));
trace(StringUtils.formatCurrency(-5058, 'INR'));
trace(StringUtils.formatCurrency(12, "$"));

Have a look at the class


package druva{
	import flash.display.Sprite;

	public class StringUtils extends Sprite {
		public function StringUtils() {
		}

		public static function formatCurrency(n:Number, Symbol:String='$'):String {
			var neg:Boolean = (n < 0) ? true : false;
			n = Math.abs(n);
			var dollars:Number=Math.floor(n);
			var decm:Number = Math.round(100 * (n - dollars));
			if (decm==100) {
				decm=0;
				dollars++;
			}
			var SymStr:String=String(dollars);
			var decmStr:String;
			var SymStr2:String="";
			for (var i = 0; i < SymStr.length; i++) {
				if (i>0&&i%3==0) {
					SymStr2=","+SymStr2;
				}
				SymStr2=SymStr.substr(- i-1,1)+SymStr2;
			}

			if (decm==0) {
				decmStr="00";
			} else if (decm < 10) {
				decmStr="0"+decm;
			} else {
				decmStr=String(decm);
			}
			var retString:String;
				if(Symbol == 'INR') {
					retString = (neg) ? "-" : "";
					retString += SymStr2 + "." + decmStr + ' ' + Symbol;
				} else {
					retString = (neg) ? ("-" + Symbol) : ("" + Symbol);
					retString += SymStr2 + "." + decmStr;
				}
			return retString;
		}

	}
}