Actionscript 3 有人能逐行解释这个AS3代码吗?
我遇到过在数字中插入逗号的代码,我计划在代码中使用它。这是可行的,但我想了解发生了什么。我正在写一个财富计算器,我需要在结果中的数字上加逗号Actionscript 3 有人能逐行解释这个AS3代码吗?,actionscript-3,flash,adobe,Actionscript 3,Flash,Adobe,我遇到过在数字中插入逗号的代码,我计划在代码中使用它。这是可行的,但我想了解发生了什么。我正在写一个财富计算器,我需要在结果中的数字上加逗号 function addComma(num: uint): String { var str: String = ""; while (num > 0) { var tmp: uint = num % 1000; str = (num > 999 ? ","
function addComma(num: uint): String {
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;
}
它工作得很漂亮,但我想理解它,这样如果我愿意,我就可以写类似的东西。让我们一行一行地浏览一下
function addComma(num: uint): String {
这是不言自明的。它声明了一个名为addComma的函数,该函数接受一个参数num,num是一个无符号整数。函数返回一个字符串
这只是定义了一个名为str的变量,它是一个字符串,并将其设置为空字符串
while (num > 0) {
当变量num大于0时,此函数将循环。循环本身在每次迭代中将num除以1000,因此当函数完成时,它最终将达到0
var tmp: uint = num % 1000;
这将创建一个名为tmp的临时变量,它是num modulo 1000。也就是说,它是num/1000的剩余部分。这允许我们获得当前的数字段,我们将处理数字中的最后三个数字
str = (num > 999 ? "," + (tmp < 100 ? (tmp < 10 ? "00" : "0") : "") : "") + tmp + str;
现在我们把num除以1000。因为num是一个整数,所以它只会向下舍入到最接近的整数。因此,所有的分数分量都将被丢弃,我们将能够对下一组数字进行运算
}
return str;
最后,我们返回最终结果
}
就这样!我们结束了。我甚至不确定这是否是解决给定问题的最佳解决方案,但它完成了任务。如果我自己写的话,我会先把数字转换成字符串,然后插入逗号。这样,您就不必担心插入前导零。非常感谢Alexis!真的很感激!
}
return str;
}