@fnmain/number 1.11.0 → 1.13.0

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/dist/index.d.ts CHANGED
@@ -6,15 +6,18 @@ type Options = {
6
6
  trimEndZeros?: boolean;
7
7
  nanString?: string;
8
8
  withCommas?: boolean;
9
+ unit?: string;
9
10
  space?: string;
11
+ uppercase?: boolean;
10
12
  };
11
13
  export declare function trimTrailingZeros(numberString: string): string;
14
+ export declare function toChinese(value: any, { nanString, uppercase }?: Options): string;
12
15
  export declare function toDigit(value: any, { fixed, withCommas, trimEndZeros, nanString }: Options): any;
13
- export declare function toWan(value: any, { fixed, withCommas, trimEndZeros, space, nanString, }?: Options): string;
14
- export declare function toYi(value: any, { fixed, withCommas, trimEndZeros, space, nanString, }?: Options): string;
15
- export declare function toWanYi(value: any, { fixed, withCommas, trimEndZeros, space, nanString, }?: Options): string;
16
+ export declare function toWan(value: any, { fixed, withCommas, trimEndZeros, space, unit, nanString, }?: Options): string;
17
+ export declare function toYi(value: any, { fixed, withCommas, trimEndZeros, space, unit, nanString, }?: Options): string;
18
+ export declare function toWanYi(value: any, { fixed, withCommas, trimEndZeros, space, unit, nanString, }?: Options): string;
16
19
  export declare function toAuto(value: any, { fixed, wanFixed, yiFixed, wanYiFixed, withCommas, trimEndZeros, space, nanString, }?: Options): string;
17
- export declare function toPercent(value: any, { fixed, withCommas, trimEndZeros, space, nanString, }?: Options): string;
20
+ export declare function toPercent(value: any, { fixed, withCommas, trimEndZeros, space, unit, nanString, }?: Options): string;
18
21
  export declare function parseNumber(input: any): number;
19
22
  export declare function isNumber(value: any): boolean;
20
23
  export declare function isNotNumber(value: any): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GAAG;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAYF,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAQ9D;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,GAAG,EACV,EAAE,KAAS,EAAE,UAAkB,EAAE,YAAoB,EAAE,SAAiB,EAAE,EAAE,OAAO,OASpF;AAED,wBAAgB,KAAK,CACnB,KAAK,EAAE,GAAG,EACV,EACE,KAAS,EACT,UAAkB,EAClB,YAAoB,EACpB,KAAU,EACV,SAAiB,GAClB,GAAE,OAAY,GACd,MAAM,CAQR;AAED,wBAAgB,IAAI,CAClB,KAAK,EAAE,GAAG,EACV,EACE,KAAS,EACT,UAAkB,EAClB,YAAoB,EACpB,KAAU,EACV,SAAiB,GAClB,GAAE,OAAY,GACd,MAAM,CAQR;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,GAAG,EACV,EACE,KAAS,EACT,UAAkB,EAClB,YAAoB,EACpB,KAAU,EACV,SAAiB,GAClB,GAAE,OAAY,GACd,MAAM,CAQR;AAED,wBAAgB,MAAM,CACpB,KAAK,EAAE,GAAG,EACV,EACE,KAAS,EACT,QAAQ,EACR,OAAO,EACP,UAAU,EACV,UAAkB,EAClB,YAAoB,EACpB,KAAU,EACV,SAAiB,GAClB,GAAE,OAAY,GACd,MAAM,CAqBR;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,GAAG,EACV,EACE,KAAS,EACT,UAAkB,EAClB,YAAoB,EACpB,KAAU,EACV,SAAiB,GAClB,GAAE,OAAY,GACd,MAAM,CAQR;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAwD9C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE5C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE/C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE;;CAAoB,GAAG,MAAM,CAMnF;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,wBAAgB,cAAc,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAOrD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,GAAG;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAmBF,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAQ9D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,SAAiB,EAAE,SAAiB,EAAE,GAAE,OAAY,UAiG3F;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,GAAG,EACV,EAAE,KAAS,EAAE,UAAkB,EAAE,YAAoB,EAAE,SAAiB,EAAE,EAAE,OAAO,OASpF;AAED,wBAAgB,KAAK,CACnB,KAAK,EAAE,GAAG,EACV,EACE,KAAS,EACT,UAAkB,EAClB,YAAoB,EACpB,KAAU,EACV,IAAU,EACV,SAAiB,GAClB,GAAE,OAAY,GACd,MAAM,CAQR;AAED,wBAAgB,IAAI,CAClB,KAAK,EAAE,GAAG,EACV,EACE,KAAS,EACT,UAAkB,EAClB,YAAoB,EACpB,KAAU,EACV,IAAU,EACV,SAAiB,GAClB,GAAE,OAAY,GACd,MAAM,CAQR;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,GAAG,EACV,EACE,KAAS,EACT,UAAkB,EAClB,YAAoB,EACpB,KAAU,EACV,IAAW,EACX,SAAiB,GAClB,GAAE,OAAY,GACd,MAAM,CAQR;AAED,wBAAgB,MAAM,CACpB,KAAK,EAAE,GAAG,EACV,EACE,KAAS,EACT,QAAQ,EACR,OAAO,EACP,UAAU,EACV,UAAkB,EAClB,YAAoB,EACpB,KAAU,EACV,SAAiB,GAClB,GAAE,OAAY,GACd,MAAM,CAqBR;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,GAAG,EACV,EACE,KAAS,EACT,UAAkB,EAClB,YAAoB,EACpB,KAAU,EACV,IAAU,EACV,SAAiB,GAClB,GAAE,OAAY,GACd,MAAM,CAQR;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAwD9C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE5C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAE/C;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,MAAM,EAAE;;CAAoB,GAAG,MAAM,CAMnF;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,wBAAgB,cAAc,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,CAOrD"}
package/dist/index.js CHANGED
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.numberFallback = exports.removeNumberCommas = exports.formatWithCommas = exports.addCommas = exports.isNotNumber = exports.isNumber = exports.parseNumber = exports.toPercent = exports.toAuto = exports.toWanYi = exports.toYi = exports.toWan = exports.toDigit = exports.trimTrailingZeros = void 0;
4
- function format(value, { withCommas = false, trimEndZeros = false }) {
3
+ exports.numberFallback = exports.removeNumberCommas = exports.formatWithCommas = exports.addCommas = exports.isNotNumber = exports.isNumber = exports.parseNumber = exports.toPercent = exports.toAuto = exports.toWanYi = exports.toYi = exports.toWan = exports.toDigit = exports.toChinese = exports.trimTrailingZeros = void 0;
4
+ function format(value, { withCommas = false, trimEndZeros = false, space, unit, }) {
5
5
  let ret = value;
6
6
  ret = trimEndZeros ? trimTrailingZeros(ret) : ret;
7
7
  ret = withCommas ? addCommas(ret) : ret;
8
+ ret = space ? ret + space : ret;
9
+ ret = unit ? ret + unit : ret;
8
10
  return ret;
9
11
  }
10
12
  function trimTrailingZeros(numberString) {
@@ -17,7 +19,94 @@ function trimTrailingZeros(numberString) {
17
19
  return numberString;
18
20
  }
19
21
  exports.trimTrailingZeros = trimTrailingZeros;
20
- function toDigit(value, { fixed = 2, withCommas = false, trimEndZeros = false, nanString = "NaN" }) {
22
+ function toChinese(value, { nanString = "NaN", uppercase = false } = {}) {
23
+ const parsedValue = parseNumber(value);
24
+ if (isNaN(parsedValue) || !Number.isInteger(parsedValue)) {
25
+ return nanString;
26
+ }
27
+ const num = Math.floor(parsedValue);
28
+ if (num === 0) {
29
+ return uppercase ? "零" : "零";
30
+ }
31
+ const isNegative = num < 0;
32
+ const absNum = Math.abs(num);
33
+ // 中文数字字符映射
34
+ const digits = uppercase
35
+ ? ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]
36
+ : ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"];
37
+ const units = uppercase ? ["", "拾", "佰", "仟"] : ["", "十", "百", "千"];
38
+ const bigUnits = ["", "万", "亿", "万亿"];
39
+ // 将数字按万进制分组(每4位一组)
40
+ function convertGroup(n) {
41
+ if (n === 0)
42
+ return "";
43
+ let result = "";
44
+ let needZero = false;
45
+ for (let i = 3; i >= 0; i--) {
46
+ const unit = Math.pow(10, i);
47
+ const digit = Math.floor(n / unit);
48
+ n %= unit;
49
+ if (digit > 0) {
50
+ if (needZero) {
51
+ result += digits[0]; // 添加"零"
52
+ }
53
+ result += digits[digit];
54
+ if (i > 0) {
55
+ result += units[i];
56
+ }
57
+ needZero = false;
58
+ }
59
+ else if (result && n > 0) {
60
+ needZero = true;
61
+ }
62
+ }
63
+ return result;
64
+ }
65
+ // 按万进制分组处理
66
+ const groups = [];
67
+ let tempNum = absNum;
68
+ while (tempNum > 0) {
69
+ groups.push(tempNum % 10000);
70
+ tempNum = Math.floor(tempNum / 10000);
71
+ }
72
+ let result = "";
73
+ let hasValue = false;
74
+ for (let i = groups.length - 1; i >= 0; i--) {
75
+ const groupValue = groups[i];
76
+ if (groupValue > 0) {
77
+ const groupStr = convertGroup(groupValue);
78
+ if (groupStr) {
79
+ // 处理"一十"的特殊情况
80
+ if (i === 0 && groupValue >= 10 && groupValue < 20 && !uppercase) {
81
+ result += groupStr.replace(/^一十/, "十");
82
+ }
83
+ else {
84
+ result += groupStr;
85
+ }
86
+ if (i > 0) {
87
+ result += bigUnits[i];
88
+ }
89
+ hasValue = true;
90
+ }
91
+ }
92
+ else if (hasValue && i > 0) {
93
+ // 需要添加零
94
+ let needZero = false;
95
+ for (let j = i - 1; j >= 0; j--) {
96
+ if (groups[j] > 0) {
97
+ needZero = true;
98
+ break;
99
+ }
100
+ }
101
+ if (needZero) {
102
+ result += digits[0];
103
+ }
104
+ }
105
+ }
106
+ return isNegative ? "负" + result : result;
107
+ }
108
+ exports.toChinese = toChinese;
109
+ function toDigit(value, { fixed = 0, withCommas = false, trimEndZeros = false, nanString = "NaN" }) {
21
110
  value = parseNumber(value);
22
111
  if (isNaN(value)) {
23
112
  return nanString;
@@ -27,34 +116,34 @@ function toDigit(value, { fixed = 2, withCommas = false, trimEndZeros = false, n
27
116
  return ret;
28
117
  }
29
118
  exports.toDigit = toDigit;
30
- function toWan(value, { fixed = 0, withCommas = false, trimEndZeros = false, space = "", nanString = "NaN", } = {}) {
119
+ function toWan(value, { fixed = 0, withCommas = false, trimEndZeros = false, space = "", unit = "万", nanString = "NaN", } = {}) {
31
120
  value = parseNumber(value);
32
121
  if (isNaN(value)) {
33
122
  return nanString;
34
123
  }
35
124
  let ret = (value / 10000).toFixed(fixed);
36
- ret = format(ret, { withCommas, trimEndZeros });
37
- return ret + space + "万";
125
+ ret = format(ret, { withCommas, trimEndZeros, space, unit });
126
+ return ret;
38
127
  }
39
128
  exports.toWan = toWan;
40
- function toYi(value, { fixed = 0, withCommas = false, trimEndZeros = false, space = "", nanString = "NaN", } = {}) {
129
+ function toYi(value, { fixed = 0, withCommas = false, trimEndZeros = false, space = "", unit = "亿", nanString = "NaN", } = {}) {
41
130
  value = parseNumber(value);
42
131
  if (isNaN(value)) {
43
132
  return nanString;
44
133
  }
45
134
  let ret = (value / 100000000).toFixed(fixed);
46
- ret = format(ret, { withCommas, trimEndZeros });
47
- return ret + space + "亿";
135
+ ret = format(ret, { withCommas, trimEndZeros, space, unit });
136
+ return ret;
48
137
  }
49
138
  exports.toYi = toYi;
50
- function toWanYi(value, { fixed = 0, withCommas = false, trimEndZeros = false, space = "", nanString = "NaN", } = {}) {
139
+ function toWanYi(value, { fixed = 0, withCommas = false, trimEndZeros = false, space = "", unit = "万亿", nanString = "NaN", } = {}) {
51
140
  value = parseNumber(value);
52
141
  if (isNaN(value)) {
53
142
  return nanString;
54
143
  }
55
144
  let ret = (value / 1000000000000).toFixed(fixed);
56
- ret = format(ret, { withCommas, trimEndZeros });
57
- return ret + space + "万亿";
145
+ ret = format(ret, { withCommas, trimEndZeros, space, unit });
146
+ return ret;
58
147
  }
59
148
  exports.toWanYi = toWanYi;
60
149
  function toAuto(value, { fixed = 0, wanFixed, yiFixed, wanYiFixed, withCommas = false, trimEndZeros = false, space = "", nanString = "NaN", } = {}) {
@@ -80,14 +169,14 @@ function toAuto(value, { fixed = 0, wanFixed, yiFixed, wanYiFixed, withCommas =
80
169
  return toWanYi(value, { fixed, withCommas, trimEndZeros, space });
81
170
  }
82
171
  exports.toAuto = toAuto;
83
- function toPercent(value, { fixed = 0, withCommas = false, trimEndZeros = false, space = "", nanString = "NaN", } = {}) {
172
+ function toPercent(value, { fixed = 0, withCommas = false, trimEndZeros = false, space = "", unit = "%", nanString = "NaN", } = {}) {
84
173
  value = parseNumber(value);
85
174
  if (isNaN(value)) {
86
175
  return nanString;
87
176
  }
88
177
  let ret = (value * 100).toFixed(fixed);
89
- ret = format(ret, { withCommas, trimEndZeros });
90
- return ret + space + "%";
178
+ ret = format(ret, { withCommas, trimEndZeros, space, unit });
179
+ return ret;
91
180
  }
92
181
  exports.toPercent = toPercent;
93
182
  function parseNumber(input) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/test.js CHANGED
@@ -5,7 +5,9 @@ console.log((0, index_1.toAuto)(NaN)); // NaN
5
5
  console.log((0, index_1.toAuto)(NaN, { nanString: "invalid" })); // invalid
6
6
  console.log((0, index_1.toAuto)(1234)); // 1234
7
7
  console.log((0, index_1.toAuto)(12345)); // 1万
8
+ console.log((0, index_1.toWan)(12345)); // 1.23万
8
9
  console.log((0, index_1.toAuto)(123456789)); // 1亿
10
+ console.log((0, index_1.toYi)(123456789, { unit: "亿元" })); // 1亿元
9
11
  console.log((0, index_1.toAuto)(1234, { fixed: 1, withCommas: true })); // 1,234.0
10
12
  console.log((0, index_1.toAuto)(12345, { fixed: 1 })); // 1.2万
11
13
  console.log((0, index_1.toAuto)(12345, { wanFixed: 2 })); // 1.23万
@@ -47,6 +49,17 @@ console.log((0, index_1.numberFallback)(undefined, 2, 3, "abc")); // 2
47
49
  console.log((0, index_1.numberFallback)(null, 2, 3, "abc")); // 2
48
50
  console.log((0, index_1.numberFallback)(NaN, 2, 3, "abc")); // 2
49
51
  console.log((0, index_1.numberFallback)(0, 2, 3, "abc")); // 0
50
- console.log((0, index_1.toDigit)(1234567.89, { withCommas: true })); // 1,234,567.89
52
+ console.log((0, index_1.toDigit)(1234567.89, { withCommas: true })); // 1,234,568
51
53
  console.log((0, index_1.toDigit)(-1234567.89, { withCommas: false, fixed: 1 })); // -1234567.9
54
+ // toChinese
55
+ console.log((0, index_1.toChinese)(1234567890)); // 一十二亿三千四百五十六万七千八百九十
56
+ console.log((0, index_1.toChinese)(1234567890, { uppercase: true })); // 壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾
57
+ console.log((0, index_1.toChinese)(0)); // 零
58
+ console.log((0, index_1.toChinese)(1, { uppercase: true })); // 壹
59
+ console.log((0, index_1.toChinese)(NaN)); // NaN
60
+ console.log((0, index_1.toChinese)(NaN, { nanString: "非数字" })); // 非数字
61
+ console.log((0, index_1.toChinese)(123)); // "一百二十三"
62
+ console.log((0, index_1.toChinese)(123, { uppercase: true })); // "壹佰贰拾叁"
63
+ console.log((0, index_1.toChinese)(1005)); // "一千零五"
64
+ console.log((0, index_1.toChinese)(-123)); // "负一百二十三"
52
65
  //# sourceMappingURL=test.js.map
package/dist/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fnmain/number",
3
- "version": "1.11.0",
3
+ "version": "1.13.0",
4
4
  "description": "number utils",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/index.ts CHANGED
@@ -6,16 +6,25 @@ type Options = {
6
6
  trimEndZeros?: boolean;
7
7
  nanString?: string;
8
8
  withCommas?: boolean;
9
+ unit?: string;
9
10
  space?: string;
11
+ uppercase?: boolean;
10
12
  };
11
13
 
12
14
  function format(
13
15
  value: string,
14
- { withCommas = false, trimEndZeros = false }: { withCommas?: boolean; trimEndZeros?: boolean }
16
+ {
17
+ withCommas = false,
18
+ trimEndZeros = false,
19
+ space,
20
+ unit,
21
+ }: { withCommas?: boolean; trimEndZeros?: boolean; space?: string; unit?: string }
15
22
  ) {
16
23
  let ret = value;
17
24
  ret = trimEndZeros ? trimTrailingZeros(ret) : ret;
18
25
  ret = withCommas ? addCommas(ret) : ret;
26
+ ret = space ? ret + space : ret;
27
+ ret = unit ? ret + unit : ret;
19
28
  return ret;
20
29
  }
21
30
 
@@ -29,9 +38,108 @@ export function trimTrailingZeros(numberString: string): string {
29
38
  return numberString;
30
39
  }
31
40
 
41
+ export function toChinese(value: any, { nanString = "NaN", uppercase = false }: Options = {}) {
42
+ const parsedValue = parseNumber(value);
43
+ if (isNaN(parsedValue) || !Number.isInteger(parsedValue)) {
44
+ return nanString;
45
+ }
46
+
47
+ const num = Math.floor(parsedValue);
48
+
49
+ if (num === 0) {
50
+ return uppercase ? "零" : "零";
51
+ }
52
+
53
+ const isNegative = num < 0;
54
+ const absNum = Math.abs(num);
55
+
56
+ // 中文数字字符映射
57
+ const digits = uppercase
58
+ ? ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]
59
+ : ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九"];
60
+
61
+ const units = uppercase ? ["", "拾", "佰", "仟"] : ["", "十", "百", "千"];
62
+
63
+ const bigUnits = ["", "万", "亿", "万亿"];
64
+
65
+ // 将数字按万进制分组(每4位一组)
66
+ function convertGroup(n: number): string {
67
+ if (n === 0) return "";
68
+
69
+ let result = "";
70
+ let needZero = false;
71
+
72
+ for (let i = 3; i >= 0; i--) {
73
+ const unit = Math.pow(10, i);
74
+ const digit = Math.floor(n / unit);
75
+ n %= unit;
76
+
77
+ if (digit > 0) {
78
+ if (needZero) {
79
+ result += digits[0]; // 添加"零"
80
+ }
81
+ result += digits[digit];
82
+ if (i > 0) {
83
+ result += units[i];
84
+ }
85
+ needZero = false;
86
+ } else if (result && n > 0) {
87
+ needZero = true;
88
+ }
89
+ }
90
+
91
+ return result;
92
+ }
93
+
94
+ // 按万进制分组处理
95
+ const groups: number[] = [];
96
+ let tempNum = absNum;
97
+ while (tempNum > 0) {
98
+ groups.push(tempNum % 10000);
99
+ tempNum = Math.floor(tempNum / 10000);
100
+ }
101
+
102
+ let result = "";
103
+ let hasValue = false;
104
+
105
+ for (let i = groups.length - 1; i >= 0; i--) {
106
+ const groupValue = groups[i];
107
+ if (groupValue > 0) {
108
+ const groupStr = convertGroup(groupValue);
109
+ if (groupStr) {
110
+ // 处理"一十"的特殊情况
111
+ if (i === 0 && groupValue >= 10 && groupValue < 20 && !uppercase) {
112
+ result += groupStr.replace(/^一十/, "十");
113
+ } else {
114
+ result += groupStr;
115
+ }
116
+
117
+ if (i > 0) {
118
+ result += bigUnits[i];
119
+ }
120
+ hasValue = true;
121
+ }
122
+ } else if (hasValue && i > 0) {
123
+ // 需要添加零
124
+ let needZero = false;
125
+ for (let j = i - 1; j >= 0; j--) {
126
+ if (groups[j] > 0) {
127
+ needZero = true;
128
+ break;
129
+ }
130
+ }
131
+ if (needZero) {
132
+ result += digits[0];
133
+ }
134
+ }
135
+ }
136
+
137
+ return isNegative ? "负" + result : result;
138
+ }
139
+
32
140
  export function toDigit(
33
141
  value: any,
34
- { fixed = 2, withCommas = false, trimEndZeros = false, nanString = "NaN" }: Options
142
+ { fixed = 0, withCommas = false, trimEndZeros = false, nanString = "NaN" }: Options
35
143
  ) {
36
144
  value = parseNumber(value);
37
145
  if (isNaN(value)) {
@@ -49,6 +157,7 @@ export function toWan(
49
157
  withCommas = false,
50
158
  trimEndZeros = false,
51
159
  space = "",
160
+ unit = "万",
52
161
  nanString = "NaN",
53
162
  }: Options = {}
54
163
  ): string {
@@ -57,8 +166,8 @@ export function toWan(
57
166
  return nanString;
58
167
  }
59
168
  let ret = (value / 10000).toFixed(fixed);
60
- ret = format(ret, { withCommas, trimEndZeros });
61
- return ret + space + "万";
169
+ ret = format(ret, { withCommas, trimEndZeros, space, unit });
170
+ return ret;
62
171
  }
63
172
 
64
173
  export function toYi(
@@ -68,6 +177,7 @@ export function toYi(
68
177
  withCommas = false,
69
178
  trimEndZeros = false,
70
179
  space = "",
180
+ unit = "亿",
71
181
  nanString = "NaN",
72
182
  }: Options = {}
73
183
  ): string {
@@ -76,8 +186,8 @@ export function toYi(
76
186
  return nanString;
77
187
  }
78
188
  let ret = (value / 100000000).toFixed(fixed);
79
- ret = format(ret, { withCommas, trimEndZeros });
80
- return ret + space + "亿";
189
+ ret = format(ret, { withCommas, trimEndZeros, space, unit });
190
+ return ret;
81
191
  }
82
192
 
83
193
  export function toWanYi(
@@ -87,6 +197,7 @@ export function toWanYi(
87
197
  withCommas = false,
88
198
  trimEndZeros = false,
89
199
  space = "",
200
+ unit = "万亿",
90
201
  nanString = "NaN",
91
202
  }: Options = {}
92
203
  ): string {
@@ -95,8 +206,8 @@ export function toWanYi(
95
206
  return nanString;
96
207
  }
97
208
  let ret = (value / 1000000000000).toFixed(fixed);
98
- ret = format(ret, { withCommas, trimEndZeros });
99
- return ret + space + "万亿";
209
+ ret = format(ret, { withCommas, trimEndZeros, space, unit });
210
+ return ret;
100
211
  }
101
212
 
102
213
  export function toAuto(
@@ -141,6 +252,7 @@ export function toPercent(
141
252
  withCommas = false,
142
253
  trimEndZeros = false,
143
254
  space = "",
255
+ unit = "%",
144
256
  nanString = "NaN",
145
257
  }: Options = {}
146
258
  ): string {
@@ -149,8 +261,8 @@ export function toPercent(
149
261
  return nanString;
150
262
  }
151
263
  let ret = (value * 100).toFixed(fixed);
152
- ret = format(ret, { withCommas, trimEndZeros });
153
- return ret + space + "%";
264
+ ret = format(ret, { withCommas, trimEndZeros, space, unit });
265
+ return ret;
154
266
  }
155
267
 
156
268
  export function parseNumber(input: any): number {
package/src/test.ts CHANGED
@@ -6,15 +6,20 @@ import {
6
6
  parseNumber,
7
7
  removeNumberCommas,
8
8
  toAuto,
9
+ toChinese,
9
10
  toDigit,
10
11
  toPercent,
12
+ toWan,
13
+ toYi,
11
14
  } from "./index";
12
15
 
13
16
  console.log(toAuto(NaN)); // NaN
14
17
  console.log(toAuto(NaN, { nanString: "invalid" })); // invalid
15
18
  console.log(toAuto(1234)); // 1234
16
19
  console.log(toAuto(12345)); // 1万
20
+ console.log(toWan(12345)); // 1.23万
17
21
  console.log(toAuto(123456789)); // 1亿
22
+ console.log(toYi(123456789, { unit: "亿元" })); // 1亿元
18
23
 
19
24
  console.log(toAuto(1234, { fixed: 1, withCommas: true })); // 1,234.0
20
25
  console.log(toAuto(12345, { fixed: 1 })); // 1.2万
@@ -64,5 +69,17 @@ console.log(numberFallback(null, 2, 3, "abc")); // 2
64
69
  console.log(numberFallback(NaN, 2, 3, "abc")); // 2
65
70
  console.log(numberFallback(0, 2, 3, "abc")); // 0
66
71
 
67
- console.log(toDigit(1234567.89, { withCommas: true })); // 1,234,567.89
72
+ console.log(toDigit(1234567.89, { withCommas: true })); // 1,234,568
68
73
  console.log(toDigit(-1234567.89, { withCommas: false, fixed: 1 })); // -1234567.9
74
+
75
+ // toChinese
76
+ console.log(toChinese(1234567890)); // 一十二亿三千四百五十六万七千八百九十
77
+ console.log(toChinese(1234567890, { uppercase: true })); // 壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾
78
+ console.log(toChinese(0)); // 零
79
+ console.log(toChinese(1, { uppercase: true })); // 壹
80
+ console.log(toChinese(NaN)); // NaN
81
+ console.log(toChinese(NaN, { nanString: "非数字" })); // 非数字
82
+ console.log(toChinese(123)); // "一百二十三"
83
+ console.log(toChinese(123, { uppercase: true })); // "壹佰贰拾叁"
84
+ console.log(toChinese(1005)); // "一千零五"
85
+ console.log(toChinese(-123)); // "负一百二十三"