@numio/bigmath 1.0.6 → 1.0.7
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.
- package/README.md +3 -3
- package/package.json +1 -1
- package/src/compare/main.d.ts +2 -0
- package/src/compare/main.js +2 -0
- package/src/mean/main.d.ts +1 -0
- package/src/mean/main.js +1 -0
- package/src/pipe/main.d.ts +1 -0
- package/src/pipe/main.js +1 -0
- package/src/quartile/main.d.ts +1 -0
- package/src/quartile/main.js +1 -0
- package/src/round/index.js +4 -4
- package/src/shared/utils.js +5 -5
- package/src/sort/main.d.ts +1 -0
- package/src/sort/main.js +1 -0
package/README.md
CHANGED
@@ -113,12 +113,12 @@ const negative = mul(["-2", "3"]); // -6
|
|
113
113
|
```javascript
|
114
114
|
import { div } from "@numio/bigmath";
|
115
115
|
|
116
|
-
const int = div(["9999", "33"]); //
|
116
|
+
const int = div(["9999", "33"]); // 303
|
117
117
|
const float = div(["0.06", "0.2"]); // 0.3
|
118
|
-
const negative = div(["-2", "-3", "2"]); //
|
118
|
+
const negative = div(["-2", "-3", "2"]); //0.33333333333333333333
|
119
119
|
|
120
120
|
// set number of digit after the decimal. By default it's 20
|
121
|
-
div("10", "3"); // 3.
|
121
|
+
div(["10", "3"], 4); // 3.3333
|
122
122
|
```
|
123
123
|
|
124
124
|
### Round
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "@numio/bigmath",
|
3
3
|
"description": "@numio/bigmath is an arbitrary-precision arithmetic library. It can be used for basic operations with decimal numbers (integers and float)",
|
4
|
-
"version": "1.0.
|
4
|
+
"version": "1.0.7",
|
5
5
|
"keywords": [
|
6
6
|
"precision",
|
7
7
|
"arithmetic",
|
package/src/compare/main.d.ts
CHANGED
@@ -2,6 +2,8 @@ import type { CompareRawFn, Max, MaxRawFn, Min, MinRawFn } from "./types.d.ts";
|
|
2
2
|
export declare const compareRawFn: CompareRawFn;
|
3
3
|
export declare const maxRawFn: MaxRawFn;
|
4
4
|
export declare const minRawFn: MinRawFn;
|
5
|
+
/** This function returns max number. */
|
5
6
|
export declare const max: Max;
|
7
|
+
/** This function returns min number. */
|
6
8
|
export declare const min: Min;
|
7
9
|
export declare const isGreater: (l: string, r: string) => boolean;
|
package/src/compare/main.js
CHANGED
@@ -65,10 +65,12 @@ export var minRawFn = function (array) {
|
|
65
65
|
}
|
66
66
|
return min;
|
67
67
|
};
|
68
|
+
/** This function returns max number. */
|
68
69
|
export var max = function (strs) {
|
69
70
|
var array = strs.map(function (str) { return s2a(str); });
|
70
71
|
return a2s(maxRawFn(array));
|
71
72
|
};
|
73
|
+
/** This function returns min number. */
|
72
74
|
export var min = function (strs) {
|
73
75
|
var array = strs.map(function (str) { return s2a(str); });
|
74
76
|
return a2s(minRawFn(array));
|
package/src/mean/main.d.ts
CHANGED
package/src/mean/main.js
CHANGED
package/src/pipe/main.d.ts
CHANGED
package/src/pipe/main.js
CHANGED
package/src/quartile/main.d.ts
CHANGED
package/src/quartile/main.js
CHANGED
@@ -2,6 +2,7 @@ import { pipe } from "../pipe/main.js";
|
|
2
2
|
var mean = function (idx, array) {
|
3
3
|
return pipe.add([array[idx], array[idx - 1]]).div(["2"]).calc();
|
4
4
|
};
|
5
|
+
/** This function returns Q1, Q2, Q3 (quartile). */
|
5
6
|
export var quartile = function (array) {
|
6
7
|
if (array.length < 3) {
|
7
8
|
throw Error("To calculate quartile you need at least 3 elements");
|
package/src/round/index.js
CHANGED
@@ -9,13 +9,13 @@ export var round = function (value, options) {
|
|
9
9
|
var sigFig = (_c = options === null || options === void 0 ? void 0 : options.sigFig) !== null && _c !== void 0 ? _c : false;
|
10
10
|
var decimals = (_d = options === null || options === void 0 ? void 0 : options.decimals) !== null && _d !== void 0 ? _d : 0;
|
11
11
|
var isFloat = false;
|
12
|
-
var
|
12
|
+
var isNil = true;
|
13
13
|
for (var i = 0; i < value.length; i++) {
|
14
14
|
var charCode = value.charCodeAt(i);
|
15
15
|
if (sigFig && charCode > 48)
|
16
16
|
sigFig = false;
|
17
|
-
if (
|
18
|
-
|
17
|
+
if (isNil && charCode > 48)
|
18
|
+
isNil = false;
|
19
19
|
if (isFloat && !sigFig)
|
20
20
|
decimals -= 1;
|
21
21
|
if (charCode === 46)
|
@@ -39,7 +39,7 @@ export var round = function (value, options) {
|
|
39
39
|
array.push(charCode);
|
40
40
|
}
|
41
41
|
handleTail(array, isFloat);
|
42
|
-
return (
|
42
|
+
return (isNil && array[array.length - 1] <= 48)
|
43
43
|
? "0"
|
44
44
|
: String.fromCharCode.apply(String, array);
|
45
45
|
};
|
package/src/shared/utils.js
CHANGED
@@ -28,8 +28,7 @@ export var a2s = function (_a) {
|
|
28
28
|
result.push(array[i]);
|
29
29
|
}
|
30
30
|
}
|
31
|
-
result.at(-1) === 46
|
32
|
-
return convert(isNegative, result);
|
31
|
+
return result.at(-1) === 46 ? "0" : convert(isNegative, result);
|
33
32
|
}
|
34
33
|
return convert(isNegative, array);
|
35
34
|
};
|
@@ -38,9 +37,10 @@ export var s2a = function (string) {
|
|
38
37
|
var isNegative = string.charCodeAt(0) === 45;
|
39
38
|
var shift = isNegative ? 1 : 0;
|
40
39
|
var dec = 0;
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
var isNil = string.length === 1 && string.charCodeAt(0) === 48;
|
41
|
+
var isNegNil = string.length === 2 && string.charCodeAt(0) === 45 &&
|
42
|
+
string.charCodeAt(1) === 48;
|
43
|
+
if (isNil || isNegNil) {
|
44
44
|
return {
|
45
45
|
array: [48],
|
46
46
|
intLength: 1,
|
package/src/sort/main.d.ts
CHANGED
package/src/sort/main.js
CHANGED
@@ -35,6 +35,7 @@ var sortRawFn = function (array, sorting) {
|
|
35
35
|
}
|
36
36
|
return array;
|
37
37
|
};
|
38
|
+
/** Using this function sort an array. */
|
38
39
|
export var sort = function (array, sorting) {
|
39
40
|
if (sorting === void 0) { sorting = ASC; }
|
40
41
|
var inputDataArray = array.map(function (str) { return s2a(str); });
|