chinese-number-format
Version:
中文數字轉換Chinese numeral conversion
136 lines (94 loc) • 3.74 kB
Markdown
# chinese-number-format
[![NPM version][npm-version-image]][npm-url]
> A utility for converting between Chinese numerals and Arabic numbers, supporting both Traditional (zh-TW) and Simplified Chinese (zh-CN).
## Features
- Convert numbers to Chinese characters
- Convert numbers to Chinese with units (up to 載/载)
- Convert numbers to approximate Chinese with units
- Convert Chinese characters to numbers
- Convert to uppercase Chinese numerals
- Support both Traditional Chinese (zh-TW) and Simplified Chinese (zh-CN)
## Installation
```bash
npm install chinese-number-format
```
## API Reference
### Basic Conversion
```js
import { toChinese } from 'chinese-number-format';
// Basic number to Chinese
toChinese(1234567890, 'zh-TW'); // => '一二三四五六七八九零'
toChinese(9876543210, 'zh-CN'); // => '九八七六五四三二一零'
```
### Units Conversion
```js
import { toChineseWithUnits } from 'chinese-number-format';
// Number to Chinese with units
toChineseWithUnits(1234567890, 'zh-TW'); // => '一十二億三千四百五十六萬七千八百九十'
toChineseWithUnits(123.45, 'zh-CN'); // => '一百二十三点四五'
```
### Approximate Numbers
```js
import { toChineseApproximate } from 'chinese-number-format';
// Convert to approximate values
toChineseApproximate(12345); // => '一點二萬'
toChineseApproximate(1234567890, { locale: 'zh-CN' }); // => '十二点三亿'
toChineseApproximate(12345, { precision: 2 }); // => '一點二三萬'
```
### Chinese to Number
```js
import { toNumber } from 'chinese-number-format';
// Chinese to number
toNumber('一二三四五六七八九零'); // => 1234567890
toNumber('一二三點四五'); // => 123.45
```
### Uppercase Conversion
```js
import { toUpperCase } from 'chinese-number-format';
// Convert to uppercase Chinese numerals
toUpperCase('一二三', 'zh-TW'); // => '壹貳參'
toUpperCase('123', 'zh-CN'); // => '壹贰叁'
```
### Month Conversion
```js
import { toChineseMonth } from 'chinese-number-format';
// Convert to Chinese month
toChineseMonth(1); // => '一月'
toChineseMonth(1, { format: 'traditional' }); // => '正月'
toChineseMonth(12, { locale: 'zh-CN', format: 'traditional' }); // => '腊月'
```
## API Details
### toChinese(number, locale?)
- `number`: Number to convert
- `locale`: 'zh-TW' | 'zh-CN' (Default: 'zh-TW')
- Returns: String
### toChineseWithUnits(number, locale?)
- `number`: Number to convert
- `locale`: 'zh-TW' | 'zh-CN' (Default: 'zh-TW')
- Returns: String
### toChineseApproximate(number, options?)
- `number`: Number to convert
- `options`:
- `locale`: 'zh-TW' | 'zh-CN' (Default: 'zh-TW')
- `precision`: number (Default: 1)
- Returns: String
### toNumber(chinese)
- `chinese`: Chinese numeral string
- Returns: Number
### toUpperCase(input, locale?)
- `input`: String to convert
- `locale`: 'zh-TW' | 'zh-CN' (Default: 'zh-TW')
- Returns: String
### toChineseMonth(month, options?)
- `month`: Number (1-12)
- `options`:
- `locale`: 'zh-TW' | 'zh-CN' (Default: 'zh-TW')
- `format`: 'traditional' | 'simple' (Default: 'simple')
- Returns: String
## Notes
- Default locale is zh-TW (Traditional Chinese)
- Maximum supported unit for toChineseWithUnits is 載/载 (10^44)
- toNumber does not support conversion of numbers with units
- toChineseApproximate supports automatic unit selection for large numbers
[npm-url]: https://www.npmjs.com/package/chinese-number-format
[npm-version-image]: https://img.shields.io/npm/v/chinese-number-format.svg?style=flat