我正在使用Actionscript 2.0.
在一个全新的场景中,我的唯一代码片段是:
trace(int('04755'));
trace(int('04812'));
结果为:
2541
4812
有任何想法我做错了什么/愚蠢的地方吗?
顺便说一下,我是从 XML 中获取这个源数字的,而且它已经有前导零了。此外,在 Actionscript 3 中,这个方法非常完美。
我正在使用Actionscript 2.0.
在一个全新的场景中,我的唯一代码片段是:
trace(int('04755'));
trace(int('04812'));
结果为:
2541
4812
有任何想法我做错了什么/愚蠢的地方吗?
顺便说一下,我是从 XML 中获取这个源数字的,而且它已经有前导零了。此外,在 Actionscript 3 中,这个方法非常完美。
在AS3中,您可以尝试:
parseInt('04755', 10)
10以上是基数。
在ActionScript 2中,将一个带有前导0的字符串转换为数字会假定你想要的数字是八进制。试试我为您制作的此函数:
var val:String = '00010';
function parse(str:String):Number
{
for(var i = 0; i < str.length; i++)
{
var c:String = str.charAt(i);
if(c != "0") break;
}
return Number(str.substr(i));
}
trace(parse(val)); // 10
trace(parse(val) + 10); // 20
现在您想要做的就是将字符串放入上述parse()
函数中,而不是像通常一样使用int()
或Number()
。
有点简单...
试试这个 -
temp="120";
temp2="140";
temp3=int ( temp );
temp4=int ( temp2 );
temp5=temp4+temp3;
trace(temp5);
所以,你需要的只是...
int("190");