Actionscript2.0を使用しています
真新しいシーンで。私のコードは次のとおりです。
trace(int('04755'));
trace(int('04812'));
結果:
2541
4812
私が間違っている/愚かなことをしているという考えはありますか?
ちなみに、このソース番号はXMLから取得していますが、すでに先頭に0が付いています。また、これはActionscript3でも完全に機能します。
先行する0の文字列をActionScript2の数値に変換すると、必要な数値は8進数であると想定されます。私があなたのために作ったこの関数を試してみてください:
_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()
関数で文字列をラップすることです。
AS3では、次のことを試すことができます。
parseInt('04755', 10)
上記の10は基数です。
_parseInt(yourString);
_
...正解です。 .parseInt()
はトップレベルの関数です。
簡単なもののビット...
これを試して -
temp="120";
temp2="140";
temp3=int ( temp );
temp4=int ( temp2 );
temp5=temp4+temp3;
trace(temp5);
だから、必要なのは...
int("190");