1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
| export const toNonExponential = (num) => { if (num == null) { return num; } if (typeof num == "number") { var m = num.toExponential().match(/\d(?:\.(\d*))?e([+-]\d+)/); return num.toFixed(Math.max(0, (m[1] || '').length - m[2])); } else { return num; } }
export const numberAdd = (arg1, arg2) => { arg1 = Number(arg1) || 0; arg2 = Number(arg2) || 0; arg1 = toNonExponential(arg1); arg2 = toNonExponential(arg2); var r1, r2, m; try { r1 = arg1.toString().split(".")[1].length; } catch (e) { r1 = 0; } try { r2 = arg2.toString().split(".")[1].length; } catch (e) { r2 = 0; } m = Math.pow(10, Math.max(r1, r2)); return (numberMul(arg1, m) + numberMul(arg2, m)) / m; }
export const numberSub = (arg1, arg2) => { arg1 = Number(arg1) || 0; arg2 = Number(arg2) || 0; arg1 = toNonExponential(arg1); arg2 = toNonExponential(arg2); var r1, r2, m, n; try { r1 = arg1.toString().split(".")[1].length; } catch (e) { r1 = 0; } try { r2 = arg2.toString().split(".")[1].length; } catch (e) { r2 = 0; } m = Math.pow(10, Math.max(r1, r2)); n = (r1 >= r2) ? r1 : r2; return ((numberMul(arg1, m) - numberMul(arg2, m)) / m).toFixed(n); }
export const numberMul = (arg1, arg2) => { arg1 = Number(arg1); arg2 = Number(arg2); if ((!arg1 && arg1 !== 0) || (!arg2 && arg2 !== 0)) { return null; } arg1 = toNonExponential(arg1); arg2 = toNonExponential(arg2); var n1, n2; var r1, r2; try { r1 = arg1.toString().split(".")[1].length; } catch (e) { r1 = 0; } try { r2 = arg2.toString().split(".")[1].length; } catch (e) { r2 = 0; } n1 = Number(arg1.toString().replace(".", "")); n2 = Number(arg2.toString().replace(".", "")); return n1 * n2 / Math.pow(10, r1 + r2); }
export const numberDiv = (arg1, arg2) => { arg1 = Number(arg1); arg2 = Number(arg2); if (!arg2) { return null; } if (!arg1 && arg1 !== 0) { return null; } else if (arg1 === 0) { return 0; } arg1 = toNonExponential(arg1); arg2 = toNonExponential(arg2); var n1, n2; var r1, r2; try { r1 = arg1.toString().split(".")[1].length; } catch (e) { r1 = 0; } try { r2 = arg2.toString().split(".")[1].length; } catch (e) { r2 = 0; } n1 = Number(arg1.toString().replace(".", "")); n2 = Number(arg2.toString().replace(".", "")); return numberMul((n1 / n2), Math.pow(10, r2 - r1)); }
export const floatMod = (arg1, arg2) => { arg1 = Number(arg1); arg2 = Number(arg2); if (!arg2) { return null; } if (!arg1 && arg1 !== 0) { return null; } else if (arg1 === 0) { return 0; } let intNum = arg1 / arg2; intNum = intNum < 0 ? Math.ceil(arg1 / arg2) : Math.floor(arg1 / arg2); let intVal = numberMul(intNum, arg2); return numberSub(arg1, intVal); 12.4 }
|