js金额转中文大写
基础参数:
var AIW_number = {0:'零', 1:'壹', 2:'贰', 3:'叁', 4:'肆', 5:'伍', 6:'陆', 7:'柒', 8:'捌', 9:'玖'}
var AIW_unitN = ['兆','亿','万','个']
var AIW_unitP = ['厘','分','角']
var AIW_unitU = ['仟','佰','拾','个']
主方法:
function amountInWords(amount) {
var AIW = (amount+'').split('.')
if(AIW.length>1)
return amountInWordsRound(AIW[0])+'元'+amountInWordsF(AIW[1])
else
return amountInWordsRound(AIW[0])+'元整'
}
整数部分转换:
function amountInWordsRound(round) {
if(!round) return ''
var words = ''
var rounds = Array.from(round)
var length = rounds.length
var unitU = JSON.parse(JSON.stringify(AIW_unitU))
var unitN = JSON.parse(JSON.stringify(AIW_unitN))
while(length>0) {
length--
A = rounds.pop()
U = unitU.pop()
N = (unitU.length==3?unitN.pop():'')
if(A!=0) words=AIW_number[A]+U+N+words
else words=AIW_number[A]+N+words
if(unitU.length==0) unitU = JSON.parse(JSON.stringify(AIW_unitU))
words = words.replace('undefined','')
words = words.replace('个','')
}
return amountInWordsFormate(words)
}
小数部分转换;
function amountInWordsF(fix) {
if(!fix) return ''
var unitP = JSON.parse(JSON.stringify(AIW_unitP));
var fixs = Array.from(fix)
var words=''
$.each(fixs,function(i,o){
var P = unitP.pop()
if(o==0) words+=AIW_number[o]
else words+=AIW_number[o]+P
words = words.replace('undefined','')
})
return amountInWordsFormate(words)
}
格式化处理:
function amountInWordsFormate(words) {
//去除中位零
length = words.length
while(length>1) {
length--
var now = words.charAt(length)
var before = words.charAt(length-1)
var after = words.charAt(length+1)
if(now == before || (AIW_unitN.includes(after) && now==AIW_number[0] ) ){
words = words.substring(0,length)+words.substring(length+1)
length = words.length
}
}
//去除末位零
length = 2
while(length>1) {
length--
if(words.charAt(words.length-1)==AIW_number[0] && words.length>1){
words = words.substring(0,words.length-1)
length = 2
}
}
return words
}
js金额转中文大写的更多相关文章
- 【转载】C#工具类:人民币金额转换为中文大写
在涉及到金融业务这一块的系统设计中,时常能够遇到的情况是需要将阿拉伯数字的人民币金额自动转换为中文的大写金额.现在互联网上也有很多网站提供此类服务,只要你输入人民币的阿拉伯数字金额,输入后自动给你转换 ...
- C# 金额转中文大写
今天看到一个库是把金额转中文大写,看起来很容易,所以我就自己写了 创建的项目是创建一个 dot net core 的项目,实际上这个项目可以创建为 Stand 的. 首先创建类,这个类的构造传入一个 ...
- 2018-4-29-C#-金额转中文大写
title author date CreateTime categories C# 金额转中文大写 lindexi 2018-04-29 09:50:38 +0800 2018-04-02 21:4 ...
- js 金额小写转换为大写
<script> jQuery(document).ready(function () { //当金额文本框失去焦点时,自动将数字转化为大写填充到 大写的文本框中 $("#Amo ...
- js转换金额为中文大写
function changeMoneyToChinese(money){ var cnNums = new Array("零","壹","贰&quo ...
- vue filters 金额转中文大写
capitalAmount(amount: any) { // 汉字的数字 const cnNums = ["零", "壹 ...
- java数字金额转中文大写
package com.example.convert; import java.text.DecimalFormat; import java.util.Scanner; /** * 金额转换 * ...
- js阿拉伯数字转中文大写 方法重多
方法一 function DX(n) { if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) return "数据非法"; var unit = &qu ...
- js阿拉伯数字转中文大写
function DX(n) { if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) return "数据非法"; var unit = "千百 ...
随机推荐
- 大厂必问的Java集合面试题
本文目录: 常见的集合有哪些? List .Set和Map 的区别 ArrayList 了解吗? ArrayList 的扩容机制? 怎么在遍历 ArrayList 时移除一个元素? Arraylist ...
- hisql ORM 框架研究(国内第一个支持HANA的ORM框架)
HiSql 操作说明文档 V1.0 下一代ORM框架 国内第一个支持HANA的ORM框架 hisql源码下载 git clone https://github.com/tansar/HiSql.git ...
- 为EasySharding.EFCore提供Dapper相关查询扩展
承接上一篇博文中的中间件基本都是写入性的操作,但对于查询操作实际上是比较鸡肋的,如果单纯的查询,没有分表的情况下基本还能适应,这里为了Dapper提供了扩展 Dapper的扩展查询是需要写表名称的,所 ...
- Python+flask+flask-apscheduer实现定时下发任务
Python+flask+flask-apscheduer实现定时下发任务 背景: 使用python+flask+mamaca实现的自动化用例管理平台,可以下发任务到具体的节点,进行执行测试用例,没有 ...
- Python_getattr+__import__ 实现动态加载模块、类对象或函数
__import__() 语法 __import__(name[, globals[, locals[, fromlist[, level]]]]) 参数 name -- 字符串,模块的导入路径 说明 ...
- Linux查看进程启动时间和运行多长时间
Linux 查看进程启动时间和运行多长时间 启动时间 ps -eo lstart 运行多长时间 ps -eo etime -bash-4.1$ ps -eo pid,lstart,etime | gr ...
- dnspython模块报错 AttributeError: 'CNAME' object has no attribute 'address'
有时候用到这个模块的时候会报错 AttributeError: 'CNAME' object has no attribute 'address' 如下所示 [root@ansible ch01]# ...
- 随机数Random 和枚举enum
(一):生成随机数 要指定的话 需要在方法中指定最大的值 nextint(10)意思是 下一个的数是10需要导包:import java.util.Random; (二)枚举 enum 的语法和 ...
- SYCOJ4972的幂次方
题目- 2的幂次方 (shiyancang.cn) 递归题 #include<bits/stdc++.h> using namespace std; int k; void f(int n ...
- 使用Kubernetes两年来的7大经验教训
来源:分布式实验室译者:冯旭松在Ridecell公司管理基础设施团队几年后,我想在停下来休息时记录一些想法和经验教训. 1Kubernetes不仅仅是炒作 我在Kubernetes领域里活跃了很久,所 ...