financialconversion

1.1.5 • Public • Published

financialconversion

financialconversion适用于需要阿拉伯数字与中文数字之间互相转换的场景。

financialconversion特点

  • 以字符串的方式转换,没有超大数及浮点数等问题(请自行对原数据进行四舍五入等操作)
  • 支持口语化,如“壹佰亿零壹拾壹万零壹佰贰拾点贰壹”
  • 支持自定义转换(自定义位数,如可以将万亿 自定义为 兆)
  • 当然,你还可以把中文数字再转回阿拉伯数字
  • 支持自定义字符,随意转换

安装

npm install financialconversion --save

引用

import num2str from 'financialconversion';

示例

// 返回 壹分
const money1 = num2str.numToStrMoney(0.01) 
// 返回 壹佰亿零壹拾壹万零壹佰贰拾圆贰角壹分
const money2 = num2str.numToStrMoney(10000110120.21) 
// 返回 10000110120.21
const money3 = num2str.strToNumMoney('壹佰亿零壹拾壹万零壹佰贰拾圆贰角壹分')
// 返回 负壹分
const money4 = num2str.numToStrMoney(-0.01) 
// 返回 壹万亿圆整
const money4 = num2str.numToStrMoney('1000000000000')
// 返回 1000000000000
const money5 = num2str.strToNumMoney('壹万亿圆整')

// 返回 零点零零肆
const num1= num2str.numToStr(0.004) 
// 返回 壹佰亿零壹拾壹万零壹佰贰拾点贰壹
const num2= num2str.numToStr(10000110120.21) 
// 返回 10000110120.21
const num3= num2str.strToNum('壹佰亿零壹拾壹万零壹佰贰拾点贰壹')

修改语言

num2str.setLanguage('cn')
// 返回 一百二十三圆整
const money1 = num2str.numToStrMoney(123)
num2str.setLanguage('hk')
// 返回 肆佰伍拾陸圓壹角貳分
const money2 = num2str.numToStrMoney(456.12)

不止于此

我们还可以根据自己的需求设置不同的字符串

例如
// 将默认数字“0”,“1”分别改成了“凌”,“一”
num2str.setNums({ 0: "凌", 1: "一" })
// 将默认金额单位“圆”改成了“元”
num2str.setMoneyUnits({1:'元'})
// 扩展单位“兆”
num2str.setUnit({'1000000000000':'兆'})

// 返回 一佰亿凌一拾一万凌一佰贰拾元贰角一分
const money1 = num2str.numToStrMoney(10000110120.21) 
// 返回 10000110120.21
const money2 = num2str.strToNumMoney('一佰亿凌一拾一万凌一佰贰拾元贰角一分')

// 将默认小数分割符“点”别改成了“典”
num2str.setDecUnit({'.':'典'})
// 将默认位数“拾”,“佰”,“仟”分别改成了“时”,“摆”,“签”
num2str.setUnit({10: "时", 100: "摆", 1000: "签"})
// 返回 一摆亿凌一时一万凌一摆贰时典贰一
const num = num2str.numToStr(10000110120.21) 

API

API 参数 默认参数 介绍
setLanguage language{ String} "default" 可选:"cn","hk"
setNums nums{ Object } 设置数字 详情见下 (获取参数示例)
setUnit units{ Object } 设置位数 详情见下 (获取参数示例)
setDecUnit decUnit{ Object } 设置小数点或整 详情见下 (获取参数示例)
setMoneyUnits moneyUnits{ Object } 设置金额单位 详情见下 (获取参数示例)
numToStr num{ number or string } 数字转中文
numToStrMoney num{ number or string } 数字金额转中文金额
strToNum num{ string } 中文转数字
strToNumMoney num{ string } 中文金额转数字金额

获取参数示例

// 返回所有参数示例
num2str.getDefaultParams()
{
  nums: {
    '0': '零',
    '1': '壹',
    '2': '贰',
    '3': '叁',
    '4': '肆',
    '5': '伍',
    '6': '陆',
    '7': '柒',
    '8': '捌',
    '9': '玖'
  },
  units: {
    '10': '拾',
    '100': '佰',
    '1000': '仟',
    '10000': '万',
    '100000000': '亿'
  },
  decUnit: { 
    '.': '点', 
    '/': '整' , 
    '-': '负' 
  },
  moneyUnits: { 
    '1': '圆', 
    '0.1': '角', 
    '0.01': '分', 
    '0.001': '毫', 
    '0.0001': '厘' 
  }
}

版本日志

1.1.5
  • 优化 可以自定义扩展单位,不限于兆、京等,具体需要Math.pow(10000,n),小数部分同理
  • 新增 去掉争议单位改为万亿,但是任然可以自定义扩展Math.pow(10000,n)作为单位,如设置num2str.setUnit({'1000000000000':'兆'})后,任然可以使用兆
  • 修复 部分数字转换错误
1.1.4
  • 新增 负数转换
  • 修复 小数点后口语化问题
1.1.3
  • 新增 setLanguage('hk')转换繁体大写 @param{'default'|'cn'|'hk'}
  • 新增 简体小写中文模板,“一,二,三,四”等,可以使用setLanguage('cn')切换
  • 修复 numToStrMoney(0)转换错误的问题
1.1.2
  • 修复 (0,1)区间内转换错误的问题
1.1.1
  • 优化 设置自定义字符时可只设置单个字符
1.1.0
  • 新增 setNums实现自定义转换数字字符
  • 新增 setUnit实现自定义位数字符
  • 新增 setDecUnit实现自定义小数分割字符
  • 新增 setMoneyUnits实现自定义金额单位字符
  • 新增 getDefaultParams实现获取当前默认字符配置
  • 新增 numToStr实现数字转中文
  • 新增 numToStrMoney实现数字转中文金额
  • 新增 strToNum实现中文数字转阿拉伯数字
  • 新增 strToNumMoney实现中文数字金额转阿拉伯数字
  • 弃用 lowerToupper,upperTolower方法
1.0.1 已废弃
  • 修复 转换大小限制,支持传入中文
  • 优化 压缩代码体积,优化性能
1.0.0 已废弃
  • 新增 lowerToupper,upperTolower方法,实现大小写转换

Package Sidebar

Install

npm i financialconversion

Weekly Downloads

5

Version

1.1.5

License

ISC

Unpacked Size

14.5 kB

Total Files

7

Last publish

Collaborators

  • lh18579216367