pixiu-number-toolkit
Version:
A collection of number utilities.
51 lines (48 loc) • 12.8 kB
JavaScript
;
var chunkPSPFILUX_cjs = require('./chunk-PSPFILUX.cjs');
var chunk6NRDSJFI_cjs = require('./chunk-6NRDSJFI.cjs');
var chunkQTJZHAZF_cjs = require('./chunk-QTJZHAZF.cjs');
var mathjs = require('mathjs');
var L=["\u96F6","\u58F9","\u8D30","\u53C1","\u8086","\u4F0D","\u9646","\u67D2","\u634C","\u7396"],w=[["\u5143","\u4E07","\u4EBF"],["","\u62FE","\u4F70","\u4EDF"]],oe=99999999999999e-2;function ae(e){if(Math.abs(e)>oe)throw new Error("\u91D1\u989D\u8D85\u51FA\u53EF\u8F6C\u6362\u8303\u56F4");let r=e<0?"\u6B20":"";e=Math.abs(e);let t=Math.round(e%1*100),n=Math.floor(t/10),i=t%10,o="";n>0&&(o+=`${L[n]}\u89D2`),i>0&&(o+=`${L[i]}\u5206`),o=o||"\u6574";let a="";e=Math.floor(e);for(let c=0;c<w[0].length&&e>0;c++){let f="";for(let l=0;l<w[1].length&&e>0;l++)f=L[e%10]+w[1][l]+f,e=Math.floor(e/10);a=f.replace(chunk6NRDSJFI_cjs.c,"").replace(chunk6NRDSJFI_cjs.d,"\u96F6")+w[0][c]+a;}return r+(a+o).replace(chunk6NRDSJFI_cjs.e,"\u5143").replace(chunk6NRDSJFI_cjs.f,"\u96F6").replace(chunk6NRDSJFI_cjs.g,"\u96F6\u5143\u6574")}var J={\u96F6:0,\u58F9:1,\u8D30:2,\u53C1:3,\u8086:4,\u4F0D:5,\u9646:6,\u67D2:7,\u634C:8,\u7396:9},T={\u62FE:10,\u4F70:100,\u4EDF:1e3,\u4E07:1e4,\u4EBF:1e8};function ue(e){let r=0,t=0,n=!1,i=0,o=0;e.startsWith("\u6B20")&&(n=!0,e=e.slice(1));for(let a of e)a in J?t=J[a]:a in T?(t===0&&a==="\u62FE"&&(t=1),T[a]>=1e4?(i=Number(s(`${i}+${t}`)),o=Number(s(`${o}+ ${i} * ${T[a]}`)),a==="\u4EBF"&&(r=Number(s(`${r} + ${o}`)),o=0),i=0):i=Number(s(`${i} + ${t} * ${T[a]}`)),t=0):a==="\u5143"||a==="\u6574"?(i=Number(s(`${i} + ${t}`)),o=Number(s(`${o} + ${i}`)),r=Number(s(`${r} + ${o}`)),i=0,o=0,t=0):a==="\u89D2"?(r=Number(s(`${r}+${t} * 0.1`)),t=0):a==="\u5206"&&(r=Number(s(`${r}+${t} * 0.01`)),t=0);return r=Number(s(`${r} + ${o} + ${i} + ${t}`)),n?-r:r}var q=["","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D","\u4E03","\u516B","\u4E5D"],Q=["","\u5341","\u767E","\u5343"],se=["","\u4E07","\u4EBF"],me=1e11;function ce(e){if(Math.abs(e)>=me)throw new Error("\u8F93\u5165\u7684\u6574\u6570\u90E8\u5206\u5FC5\u987B\u5728-1000\u4EBF\u52301000\u4EBF\u4E4B\u95F4");if(e===0)return "\u96F6";let r=e<0;e=Math.abs(e);let t=Math.floor(e),n=Number(s(`${e} - ${t}`)),i=t===0?"\u96F6":le(t);return n>0&&(i+=`\u70B9${pe(n)}`),r?`\u8D1F${i}`:i}function le(e){let r="",t=0;for(let n=0;e>0;n++){let i=e%1e4;if(i!==0){let o=fe(i);t<1e3&&t!==0&&n>0&&(r=`\u96F6${r}`),r=o+(n>0?se[n]:"")+r;}t=i,e=Math.floor(e/1e4);}return r.trim()}function pe(e){return e.toString().slice(2).split("").map(t=>t==="0"?"\u96F6":q[parseInt(t,10)]).join("")}function fe(e){if(e===0)return "";if(e<10)return q[e];if(e===10)return Q[1];{let r="",t=0,n=!1,i=!1;for(;e>0;){let o=e%10;o===0?i&&(n=!0):(i=!0,n&&(r=`\u96F6${r}`,n=!1),r=q[o]+Q[t]+r),e=Math.floor(e/10),t++;}return r.replace(/零+$/,"")}}var d=["","one","two","three","four","five","six","seven","eight","nine","ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"],k=["","","twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"],G=["","thousand","million","billion","trillion"],de=1e12;function be(e){if(Math.abs(e)>=de)throw new Error("Input must be between -1 trillion and 1 trillion");if(e===0)return "zero";let r=e<0;e=Math.abs(e);let t=Math.floor(e),n=Number(s(`${e} - ${t}`)),i=t===0?"zero":ge(t);return n>0&&(i+=` point ${ye(n)}`),r?`negative ${i}`:i}function ge(e){if(e===0)return "";let r="";for(let t=0;e>0;t++){let n=e%1e3;n!==0?r=he(n)+(t>0?` ${G[t]} `:"")+r:t>0,e=Math.floor(e/1e3);}return r.trim()}function he(e){if(e===0)return "";let r="";if(e>=100&&(r+=`${d[Math.floor(e/100)]} hundred`,e%=100,e>0&&(r+=" and ")),e>0)if(e<20)r+=d[e];else {r+=k[Math.floor(e/10)];let t=e%10;t>0&&(r+=`-${d[t]}`);}return r}function ye(e){return e.toString().slice(2).split("").map(t=>t==="0"?"zero":d[parseInt(t,10)]).join(" ")}function Ne(e){if(e=e.toLowerCase().trim(),e==="zero")return 0;let r=!1;e.startsWith("negative ")&&(r=!0,e=e.substring(9));let t=e.split(" point "),n=t[0],i=t.length>1?t[1]:"",o=Ce(n),a=0;i&&(a=+`0.${i.split(" ").map(p=>p==="zero"?0:d.indexOf(p)).join("")}`);let c=o+a;return r?-c:c}function Ce(e){e=e.replace(/ and /g," ").replace(/-/g," ");let r=e.split(" ").filter(i=>i!==""),t=0,n=0;for(let i=0;i<r.length;i++){let o=r[i];if(o==="hundred")n*=100;else if(G.includes(o)){let a=G.indexOf(o);n*=Math.pow(1e3,a),t+=n,n=0;}else d.includes(o)?n+=d.indexOf(o):k.includes(o)&&(n+=k.indexOf(o)*10);}return t+n}function xe(e,r){return Number(s(`${e}*(1+${r})`))}function Ee(e,r){return Number(s(`(${e} - ${r}) / ${r}`))}function $e(e,r){return Number(s(`${e} - ${r}`))}function we(e,r){return Number(s(`${e} / (1 + ${r})`))}function Te(e,r){return Number(s(`${e} * (1 - ${r})`))}function Ie(e,r){return Number(s(`${e} * ${r}`))}var u=mathjs.create(mathjs.all,{number:"BigNumber"});function K(e){let r={};for(let[t,n]of Object.entries(e))typeof n=="number"?r[t]=u.bignumber(n):typeof n=="string"&&(r[t]=chunkPSPFILUX_cjs.a(n)?u.bignumber(Number(n.replaceAll(",",""))):u.bignumber(n));return r}u.createUnit({Li:{definition:"500 meter"},ShiChen:{definition:"2 hour"},Jin:{definition:"500 g"},Liang:{definition:"50 g"},Qian:{definition:"5 g"},Dou:{definition:"10 L"},Hu:{definition:"10 Dou"},Mu:{definition:"666.67 m^2"},Shang:{definition:"1 hectare"},Chi:{definition:"0.33333333333333333 m"},Cun:{definition:"0.1 Chi"},Zhang:{definition:"10 Chi"}});function ve(e,r,t){let n=[];for(let i=0;i<t;i++)n.push(u.add(e,i*r));return n}function De(e,r,t){let n=[];for(let i=0;i<t;i++)n.push(u.multiply(e,Number(u.pow(r,i))));return n}var y={locale:"CNY",style:"decimal"},I=(e=y.locale)=>{let t=new Intl.NumberFormat(e,{style:"currency",currency:e}).formatToParts(123456789e-2),n="",i="";for(let o of t)o.type==="group"?n=o.value:o.type==="decimal"&&(i=o.value);return {groupSeparator:n,decimalSeparator:i}},_=(e,r=y.locale)=>{if(typeof e!="string"||e.trim()==="")throw new Error(`Invalid currency format: ${e}`);let{groupSeparator:t,decimalSeparator:n}=I(r),i=new RegExp(`\\${t}`,"g"),o=new RegExp(`\\${n}`),a=e.replace(i,"");a=a.replace(o,"."),a=a.replace(chunk6NRDSJFI_cjs.b,"");let c=parseFloat(a);if(isNaN(c))throw new Error(`Invalid currency format: ${e}`);return c},N=(e,r=y)=>{let{locale:t="CNY",style:n="decimal",unit:i,unitDisplay:o,notation:a,signDisplay:c,currencySign:f,currencyDisplay:l,minimumIntegerDigits:p,minimumFractionDigits:D,maximumFractionDigits:R,maximumSignificantDigits:ne,minimumSignificantDigits:ie,prefix:M,suffix:P}=chunkQTJZHAZF_cjs.a(chunkQTJZHAZF_cjs.a({},y),r),A=0;if(typeof e=="string"&&e.trim()!=="")A=_(e,t);else if(typeof e=="bigint"||typeof e=="number")A=e;else throw new Error(`Invalid value type: ${typeof e} ${e}`);return `${M!=null?M:""}${new Intl.NumberFormat(t,{style:n,currency:t,unit:i,unitDisplay:o,notation:a,signDisplay:c,currencySign:f,currencyDisplay:l,minimumIntegerDigits:p,minimumFractionDigits:D,maximumFractionDigits:R,maximumSignificantDigits:ne,minimumSignificantDigits:ie}).format(A)}${P!=null?P:""}`};N.setGlobalOptions=e=>{Object.assign(y,e);};var Z=(e,r=0)=>{let{originalString:t,decimalLength:n}=g(e);if(n<r){let i=r-n;return `${t}${n===0?".":""}${"0".repeat(i)}`}return t};function s(e,r={}){let t;return t=r.parameters===void 0?u.evaluate(e):u.evaluate(e,K(r.parameters)),r.useThousandSeparator?r.decimalPlaces!==void 0?t=N(t.toFixed(),{minimumFractionDigits:r.decimalPlaces,maximumFractionDigits:r.decimalPlaces}):t=N(t.toFixed()):r.decimalPlaces!==void 0&&(t=Z(t.toFixed(r.decimalPlaces),r.decimalPlaces)),t.toString()}function C(e,r){if(r!==void 0&&e.length<r)throw new TypeError("Invalid parameter: at least two parameters are required");for(let t of e)if(!chunkPSPFILUX_cjs.i(t))throw new TypeError("Invalid parameter: parameter must be a number or a string number")}function S(e){return e.map(r=>u.bignumber(r))}function V(...e){return C(e,2),Number(u.add(...S(e)))}function b(...e){C(e,2);let r=S(e),t=r[0];for(let n=1;n<r.length;n++)t=u.subtract(t,r[n]);return Number(t)}function X(...e){return C(e,2),Number(u.multiply(...S(e)))}function x(...e){C(e,2);let r=S(e),t=r[0];for(let n=1;n<r.length;n++)t=u.divide(t,r[n]);return Number(t)}function Re(e,r){if(!chunkPSPFILUX_cjs.i(e)||!chunkPSPFILUX_cjs.i(r))throw new TypeError("Invalid parameter: parameter must be a number or a string number");return u.mod(e,r)}function Me(e,r=0){if(!chunkPSPFILUX_cjs.i(e)||!chunkPSPFILUX_cjs.i(r))throw new TypeError("Invalid parameter: parameter must be a number or a string number");return u.round(e,r)}function Pe(e){if(!chunkPSPFILUX_cjs.i(e))throw new TypeError("Invalid parameter: parameter must be a number or a string number");return u.ceil(e)}function Ae(e){if(!chunkPSPFILUX_cjs.i(e))throw new TypeError("Invalid parameter: parameter must be a number or a string number");return u.floor(e)}function Oe(e){return C(e),u.pickRandom(e)}function Ue(e,r){return e===void 0&&r===void 0?u.random():e!==void 0&&r===void 0?u.random(e):e===void 0&&r!==void 0?u.random(r):u.random(e,r)}function Fe(e,r){if(r===void 0){if(!chunkPSPFILUX_cjs.i(e))throw new TypeError("Invalid parameter: parameter must be a number or a string number");return u.randomInt(e)}if(!chunkPSPFILUX_cjs.i(e)||!chunkPSPFILUX_cjs.i(r))throw new TypeError("Invalid parameter: parameter must be a number or a string number");return u.randomInt(e,r)}function Le(e,r){if(!chunkPSPFILUX_cjs.i(e)||!chunkPSPFILUX_cjs.i(r))throw new TypeError("Invalid parameter: parameter must be a number or a string number");return u.equal(e,r)}function qe(e,r){if(!chunkPSPFILUX_cjs.i(e)||!chunkPSPFILUX_cjs.i(r))throw new TypeError("Invalid parameter: parameter must be a number or a string number");return u.unequal(e,r)}function ke(e,r){if(!chunkPSPFILUX_cjs.i(e)||!chunkPSPFILUX_cjs.i(r))throw new TypeError("Invalid parameter: parameter must be a number or a string number");return u.larger(e,r)}function Ge(e,r){if(!chunkPSPFILUX_cjs.i(e)||!chunkPSPFILUX_cjs.i(r))throw new TypeError("Invalid parameter: parameter must be a number or a string number");return u.largerEq(e,r)}function Ze(e,r){if(!chunkPSPFILUX_cjs.i(e)||!chunkPSPFILUX_cjs.i(r))throw new TypeError("Invalid parameter: parameter must be a number or a string number");return u.smaller(e,r)}function Xe(e,r){if(!chunkPSPFILUX_cjs.i(e)||!chunkPSPFILUX_cjs.i(r))throw new TypeError("Invalid parameter: parameter must be a number or a string number");return u.smallerEq(e,r)}function je(e,r,t,n=!1){let i=u.unit(u.bignumber(e),r).to(t);return n?i.toString():i.toNumber()}function h(e){if(chunkPSPFILUX_cjs.N(e))return e.split(".").reduce((r,t)=>V(X(r,256),parseInt(t)),0);throw new Error("Invalid IP address")}function $(e){return [x(e,Number(mathjs.pow(256,3)))&255,x(e,Number(mathjs.pow(256,2)))&255,x(e,256)&255,e&255].join(".")}function v(e){return b(Number(mathjs.pow(2,32)),Number(mathjs.pow(2,b(32,e))))}function ee(e,r){let t=h(e),n=v(r);return $(t&n)}function re(e,r){let t=h(e),n=v(r);return $(t|~n)}function We(e,r){let t=ee(e,r),n=re(e,r),i=$(V(h(t),1)),o=$(b(h(n),1));return {firstUsable:i,lastUsable:o}}function te(e){return Number(mathjs.pow(2,b(32,e)))}function ze(e){return b(te(e),2)}function Be(e,r,t){let n=h(e),i=h(r),o=v(t);return (n&o)===(i&o)}function Ye(e,r){let t=ee(e,r),n=re(e,r),{firstUsable:i,lastUsable:o}=We(e,r),a=te(r),c=ze(r);return {networkAddress:t,broadcastAddress:n,firstUsableIp:i,lastUsableIp:o,totalIps:a,usableIps:c,subnetMask:$(v(r))}}var g=(e,r="CNY")=>{let t=e.toString(),{decimalSeparator:n}=I(r),i=e<0,o=i?t.slice(1):t,[a,c=""]=o.split(n),f=a.length,l=c.length,p=a.length;return {originalString:t,decimalIndex:f,integerPart:a,decimalPart:c,integerLength:p,decimalLength:l,isNegative:i}};function Je(e,r,t,n,i){if(i===void 0){let{decimalLength:l}=g(e);i=l;}if(i===0){let{decimalLength:l}=g(r);i=l;}let o=performance.now(),a=Number(s(`${r} - ${e}`)),c=l=>{let p=Math.pow(10,i);return Number(s(`${Math.round(Number(s(`${l} * ${p}`)))} / ${p}`))},f=l=>{let p=Number(s(`${l} - ${o}`));if(p>=t){n(c(r));return}let D=p/t,R=Number(s(`${e} + ${a} * ${D}`));n(c(R)),requestAnimationFrame(f);};return requestAnimationFrame(f),()=>{n(c(r));}}
exports.A = Ae;
exports.B = Oe;
exports.C = Ue;
exports.D = Fe;
exports.E = Le;
exports.F = qe;
exports.G = ke;
exports.H = Ge;
exports.I = Ze;
exports.J = Xe;
exports.K = je;
exports.L = Be;
exports.M = Ye;
exports.N = g;
exports.a = Je;
exports.b = ae;
exports.c = ue;
exports.d = ce;
exports.e = be;
exports.f = Ne;
exports.g = xe;
exports.h = Ee;
exports.i = $e;
exports.j = we;
exports.k = Te;
exports.l = Ie;
exports.m = ve;
exports.n = De;
exports.o = I;
exports.p = _;
exports.q = N;
exports.r = Z;
exports.s = s;
exports.t = V;
exports.u = b;
exports.v = X;
exports.w = x;
exports.x = Re;
exports.y = Me;
exports.z = Pe;
//# sourceMappingURL=chunk-D3SDZHTW.cjs.map
//# sourceMappingURL=chunk-D3SDZHTW.cjs.map