win7+Flash cs5.5+as3
将数值转为字符串在flash程序中,通过在文本框中的输入来获取大数。这时,大数已经变成了字符串。只不过它的末尾多了一个不可见的空字符。所以在求长度时要减去1。var A:String=Text1.textvar B:String=Text2.textvar j:int=A.length-1;var k:int=B.length-1;var long:int=j
判断数位,保证被减数A大于减数B 如果A的数位少于B,就将两个数及数位个数对调一下。if (j
用'0'补充数位,使两数数位相同 这是本方法的创新之处!!如果两数数位不同,就用'0'在较小的数最高位前面补充数位,使两数数位相同。while (k
分割字符到数组 与其它语言如VC\C++的方法不同的地方是:数的最高在数组首位!!!var X:Array=[];var Y:Array=[];for (var i:int =long; i>0; i--) {X[i]=A.charAt(i-1);//字符在字符串中最大索引值比个数少1Y[i]=B.charAt(i-1);}数组首位为空,为预留的用于进位的空位。如果无进位,程序会删除它。
模拟数组对应元素相加,要考虑进位var R:Array=[];//保存结果j=0;//个位无进位for (i=long; i>0; i--) {varn=Number(X[i])+Number(Y[i])+j;两数相加再加上进位R[i]=n%10;//求余,结果是个位数字j=int(n/10);//求进位,结果是0或者1}if (j>0) {//计算完了,如果有进位,就放在预留的数组的首位。R[0]=j;} else {//无进位,就删除无用的首位元素。R.shift();}输出查看结果:trace(R.join (''));你也可以输出到文本框: Text3.text=R.join ('') 来自实践的体会 绝对原创的经验 作者:张志晨 2012.5.15