efront 3.21.2 → 3.21.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,216 +0,0 @@
1
- var COMPUTE_WIDTH = 7;
2
- var COMPUTE_UNIT = Math.pow(10, COMPUTE_WIDTH);
3
- function getIntegerPartFromString(string, width) {
4
- var result = [];
5
- var split_point = string.length;
6
- while (split_point >= width) {
7
- result.unshift(string.slice(split_point - width, split_point));
8
- split_point -= width;
9
- };
10
- if (split_point > 0) {
11
- result.unshift(string.slice(0, split_point));
12
- }
13
- return result;
14
- }
15
- function getDecimalPartFromString(string, width) {
16
- var result = [];
17
- var split_point = 0, string_length = string.length;
18
- string = string + repeat("0", string.length % width);
19
- while (split_point < string_length) {
20
- result.push(string.slice(split_point, split_point + width));
21
- split_point += width;
22
- };
23
- return result;
24
- }
25
- function BigNumber(value) {
26
- if (!isObject(this)) {
27
- return new BigNumber(value);
28
- }
29
- this.signature = "";
30
- switch (typeof value) {
31
- case "number":
32
- value = String(value);
33
- case "string":
34
- value = value.replace(/\s+/, "");
35
- if (isNaN(value)) {
36
- throw new Error("数字格式不正确!");
37
- }
38
- if (/^\-/.test(value)) {
39
- this.signature = "-";
40
- value = value.slice(1);
41
- } else {
42
- this.signature = "";
43
- }
44
- value = value.replace(/^0+/, "").replace(/\.(.*?)0+$/, ".$1");//删除多余的0
45
- if (!isFinite(value)) {
46
- this.integter_part = Infinity;
47
- this.decimal_part = 0;
48
- } else {
49
- var dot_point = value.indexOf(/\./);
50
- if (dot_point >= 0) {
51
- this.integter_part = getIntegerPartFromString(value.slice(0, dot_point), COMPUTE_WIDTH).map(a => +a);
52
- this.decimal_part = getDecimalPartFromString(value.slice(dot_point + 1), COMPUTE_WIDTH).map(a => +a);
53
- } else {
54
- this.integter_part = getIntegerPartFromString(value, COMPUTE_WIDTH).map(a => +a);
55
- this.decimal_part = getDecimalPartFromString("", COMPUTE_WIDTH).map(a => +a);
56
- }
57
- }
58
- break;
59
- default:
60
- throw new Error("无效的初始值");
61
- break;
62
- }
63
- }
64
- var prototype = BigNumber.prototype = [];
65
- prototype.constructor = BigNumber;
66
-
67
- extend(prototype, {
68
- toString() {
69
- var spliter = "", width = 4;
70
- for (var cx = 0; cx < 2; cx++) {
71
- var arg = arguments[cx];
72
- if (+arg >= 1) {
73
- width = +arg | 0;
74
- } else if (!/^[\d\.]*|[\d\.]*$/.test(arg)) {
75
- spliter = arg;
76
- } else {
77
- throw new Error("宽度只能是 1 和 2147483647 之间的整数!");
78
- }
79
- }
80
- if (Infinity === this.integter_part) {
81
- return this.signature + "Infinity";
82
- }
83
- else {
84
- var result = getIntegerPartFromString(this.integter_part.map(a => getIntegerString(a)).join(""), width).join(spliter);
85
- if (this.decimal_part && this.decimal_part.length) {
86
- result += "." + getDecimalPartFromString(this.decimal_part.map(a => getIntegerString(a)).join(""), width).join(spliter);
87
- }
88
- }
89
- return this.signature + result;
90
- },
91
- add(bignumber) {
92
- if (!(bignumber instanceof BigNumber)) {
93
- bignumber = new BigNumber(bignumber);
94
- }
95
- if (bignumber.signature === this.signature) {
96
-
97
- }
98
-
99
-
100
- }
101
- });
102
-
103
- var getIntegerString = function (a) {
104
- a = String(a);
105
- if (a.length < COMPUTE_WIDTH) {
106
- a = repeat("0", COMPUTE_WIDTH - a.length) + a;
107
- }
108
- return a;
109
- };
110
- var addDecemalPart = function (arr1, arr2) {
111
- var extra = 0, arr1_length = arr1.length, arr2_length = arr2.length, result, add_length;
112
- if (arr1_length < arr2_length) {
113
- add_length = arr1_length;
114
- result = arr2.slice(arr1_length);
115
- } else {
116
- add_length = arr2_length;
117
- result = arr1.slice(arr2_length);
118
- }
119
- for (var cx = add_length - 1; cx >= 0; cx++) {
120
- var sum = arr1[cx] + arr2[cx] + extra;
121
- result.unshift(sum % COMPUTE_UNIT)
122
- extra = sum / COMPUTE_UNIT | 0;
123
- }
124
- return [extra, result];
125
- };
126
-
127
- var addIntegerPart = function (arr1, arr2, extra = 0) {
128
- var extra = 0, arr1_length = arr1.length, arr2_length = arr2.length, result, add_length, avoid_arr;
129
- if (arr1_length < arr2_length) {
130
- add_length = arr1_length;
131
- avoid_arr = arr2.slice(0, arr2_length - arr1_length);
132
- result = arr2.slice(arr1_length);
133
- } else {
134
- add_length = arr2_length;
135
- avoid_arr = arr1.slice(0, arr1_length - arr2_length);
136
- result = arr1.slice(arr2_length);
137
- }
138
- for (var cx = 1; cx <= add_length; cx++) {
139
- var sum = arr1[arr1_length - cx] + arr2[arr2_length - cx] + extra;
140
- result.unshift(sum % COMPUTE_UNIT);
141
- extra = sum / COMPUTE_UNIT | 0;
142
- }
143
- for (var cx = avoid_arr.length - 1; cx >= 0; cx++) {
144
- var sum = avoid_arr[cx] + extra;
145
- result.unshift(sum % COMPUTE_UNIT);
146
- extra = sum / COMPUTE_UNIT | 0;
147
- }
148
- if (extra > 0) {
149
- result.unshift(extra);
150
- }
151
- return result;
152
- };
153
- var minusIntegerPart = function () {
154
-
155
- };
156
- var minusDecemalPart = function () {
157
-
158
- };
159
- /**
160
- * 比较两个整数部分的大小
161
- * @param {array} arr1
162
- * @param {array} arr2
163
- */
164
- var compareIntegerPart = function (arr1, arr2) {
165
- if (arr1.length < arr2.length) {
166
- return -1;
167
- }
168
- if (arr2.length < arr1.length) {
169
- return 1;
170
- }
171
- for (var cx = 0, dx = arr1.length; cx < dx; cx++) {
172
- var num1 = arr1[cx];
173
- var num2 = arr2[cx];
174
- if (num1 < num2) {
175
- return -1;
176
- }
177
- if (num1 > num2) {
178
- return 1;
179
- }
180
- }
181
- return 0;
182
- };
183
- /**
184
- * 比较两个小数部分的大小
185
- * @param {array} arr1
186
- * @param {array} arr2
187
- */
188
- var compareDecemalPart = function (arr1, arr2) {
189
- for (var cx = 0, dx = Math.max(arr1.length, arr2.length); cx < dx; cx++) {
190
- var num1 = arr1[cx] || 0;
191
- var num2 = arr2[cx] || 0;
192
- if (num1 < num2) {
193
- return -1;
194
- }
195
- if (num1 > num2) {
196
- return 1;
197
- }
198
- }
199
- return 0;
200
- };
201
- /**
202
- * 比较两个bigNumber的绝对值的大小
203
- * @param {bignumber} big1
204
- * @param {bignumber} big2
205
- */
206
- var compare = function (big1, big2) {
207
- var integer_result = compareIntegerPart(big1.integter_part, big2.integter_part);
208
- if (integer_result) return integer_result;
209
- return compareDecemalPart(big1.decimal_part, big2.decimal_part);
210
- }
211
-
212
- var minusDecemalPart = function (arr1, arr2) {
213
-
214
- };
215
- var minusIntegerPart = function (arr1, arr2) {
216
- };