Javascript number超过16位就无法比较了,所以自己写了一个。
用到的数组函数
1、Array.reverse() 方法将一个 Array 对象中的元素位置进行反转。在执行过程中,这个方法并不会创建一个新的 Array 对象
2、Array.concat concat 方法返回一个 Array 对象,其中包含了 array1 和提供的任意其他项目的连接。
3、Array.join join 返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。
1 <script type="text/javascript">
2 //begin > end 返回true
3 //begin <= end 返回false
4 function Compare(begin, end) {
5
6 if (begin == end) {
7 return false;
8 }
9
10 var beginArr = new Array();
11 var endArr = new Array();
12
13 var len = (begin.length > end.length) ? begin.length : end.length;
14 beginArr = begin.paddLeftA(len, '-1');
15 endArr = end.paddLeftA(len, '-1');
16
17
18 var result = false;
19 //debugger;
20 for (var i = 0; i < len; i++) {
21 if (parseFloat(beginArr[i]) == parseFloat(endArr[i])) {
22 continue;
23 } else {
24 result = parseFloat(beginArr[i]) > parseFloat(endArr[i]);
25 break;
26 }
27 }
28
29 return result;
30 }
31
32 String.prototype.paddLeft = function(myLength, paddStr) {
33 var stringLength = this.length; //输入字符串长度
34 var paddLength = myLength - stringLength; //0字符串长度
35 var result = ''; //补0后返回的字符串
36
37 //生成0字符串
38 for (var i = 0; i < paddLength; i++) {
39 result += paddStr || '0';
40 }
41 //拼接
42
43 result += this;
44 return result;
45 }
46
47 //返回数组
48 String.prototype.paddLeftA = function(myLength, paddStr) {
49 var stringLength = this.length; //输入字符串长度
50 var paddLength = myLength - stringLength; //0字符串长度
51 var result = ''; //补0后返回的字符串
52 var resultArr = new Array();
53
54 //生成0字符串
55 for (var i = 0; i < paddLength; i++) {
56 resultArr.push(paddStr)
57 }
58 //拼接
59
60 result += this;
61 return resultArr.concat(this.split(''));
62 }
63
64 function add(begin, end) {
65
66 var result = new Array();
67 //左补零
68 var len = (begin.length > end.length) ? begin.length : end.length;
69 var beginArr = begin.paddLeft(len, '0').split('');
70 var endArr = end.paddLeft(len, '0').split('');
71
72 //从个位开始计算
73 for (var i = len - 1; i > -1; i--) {
74 var temp1 = parseInt(beginArr[i]);
75 var temp2 = parseInt(endArr[i]);
76
77 var sum = temp1 + temp2;
78 result.push(sum);
79 }
80
81 for (var i = 0; i < result.length; i++) {
82 var temp = parseInt(result[i]);
83 if (temp >= 10) {
84 result[i] = (temp - 10);
85 if (i == result.length - 1) {
86 result.push(1);
87 } else {
88 result[i + 1] = parseInt(result[i + 1]) + 1;
89 }
90 }
91 }
92 return result.reverse().join('');
93 }
94 </script>