所以我在舞台上有一个动态文本字段(stage_clickCounter),每次点击所述按钮时,clickCounter变量都会增加1。
我正在使用这段代码在屏幕上显示数字:
stage_clickCounter.text = numberOfClicks.toString();
这些数字显示正常,但是一旦我获得1,000次点击,就会显示没有逗号
1000//shows this on dynamic text field
1,000//would much rather prefer this
我该怎么做?我已经在字体中嵌入了数字和标点符号。
答案 0 :(得分:3)
对于正整数:
function addComma(num:uint):String{
if(num == 0) {
return "0";
}
var str:String="";
while(num>0){
var tmp:uint=num%1000;
str=(num>999?","+(tmp<100?(tmp<10?"00":"0"):""):"")+tmp+str;
num=num/1000;
}
return str;
}
用法:
trace(addComma(1000999333)); //output:1,000,999,333
修改强>
对于负整数和正整数:
function addComma(num:int):String{
if(num == 0) {
return "0";
}
var str:String="";
var sign:String=num>0?"":"-";
num=Math.abs(num);
while(num>0){
var tmp:int=num%1000;
str=(num>999?","+(tmp<100?(tmp<10?"00":"0"):""):"")+tmp+str;
num=num/1000;
}
return sign+str;
}
答案 1 :(得分:2)
Adobe为此提供了一个NumberFormatter类。它甚至支持本地化。来自http://help.adobe.com/en_US/as3/dev/WS9b644acd4ebe59998b99a90125fc4fecfb-7ffb.html
var nf:NumberFormatter = new NumberFormatter(LocaleID.DEFAULT);
trace(nf.formatNumber(-123456.789));
//Output: -123,456.789
大多数现代编程语言都应该包含一些格式化数字字符串的支持。如果有严重的原因不使用内置库,您应该只编写自己的实现。