commaFormat(num:Float):String; code snippet
August 23rd, 2009
public static inline function commaFormat( num:Float ): String
var str:String = Std.string(num);
var str_ar:Array<String> = new Array<String>();
var pos:Int = 1;
var i:Int;
var out:String = "";
if (str.indexOf(".") == -1 ){
str_ar = str.split("");
}else{
out = str.substr(str.indexOf("."));
str_ar = str.substr(0, str.indexOf(".")).split("");
}
str_ar.reverse();
for (i in 0...str_ar.length){
out = str_ar[i]+out;
if (pos++ == 3) {
pos = 1;
out = ((Math.isNaN(Std.parseFloat(str_ar[0])) && i > 1) || (!Math.isNaN(Std.parseFloat(str_ar[0])) && i >= 1) && i < str_ar.length-1) ? ","+out : out;
}
}
return out;
}
trace(commaFormat(123));
// output: 123
trace(commaFormat(123456));
// output: 123,456
trace(commaFormat(1234567890.12345));
// output: 1,234,567,890.12345
can be written better, however this should be fast enough in most cases.
var i:Int;
var s:StopWatch = new StopWatch();
for(i in 0...10000){
Utils.commaFormat(123123123123123123123);
}
s.stop();
trace(s);
0.767 ms




