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
分割字符到数组 与其它语言如VB、C++不同的地方是:数的最高在数组首位!!!var X:Array=[];var Y:Array=[];for (var i:int =long; i>0; i--) {X[i-1]=A.charAt(i-1);//字符在字符串中最大索引值比个数少1Y[i-1]=B.charAt(i-1);}与加法不同的是,减法数组首位不预留空位,因为减法没进位,但有退位。
模拟数组对应元素相减,要考虑退位 var R:Array=[];for (i=long; i>0; i--) {if(Number(X[i-1])
去掉最高位的'0' s=true;//去掉最高位的'0'while (s) {if(R[0]==0) {//如果最高位有0R.shift();}else {s=false;//没有0,退出程序}
处理结果为负数的情况if (sign=='-') {R.unshift('-');}
输出结果 trace(R.join (''));你也可以输出到文本框。Text3.text=R.join ('') 来自实践的体会 绝对原创的经验 作者:张志晨 2012.5.16