将数字转换为中文

article/2025/9/18 3:45:34

功能需求

         做公司项目遇到一个有关交易金额(合同签订书)的内容,需要将查询出来的交易金额转化为中文数字,例如:壹拾捌万伍仟元整(185000.00)

需求分析

         因为合同书中的数据都是动态的,且一分合同书中有好几处涉及到金额转换,不可能写死在页面,最有效的方法就是:遍历获取数字金额,将之转换后输出到页面。那该如何实现呢?

具体实现

    /*** 将数字转换为大写金额的函数* @param money* @returns {string}*/function convertCurrency(money) {//汉字的数字var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');//基本单位var cnIntRadice = new Array('', '拾', '佰', '仟');//对应整数部分扩展单位var cnIntUnits = new Array('', '万', '亿', '兆');//对应小数部分单位var cnDecUnits = new Array('角', '分', '毫', '厘');//整数金额时后面跟的字符// var cnInteger = '整';var cnInteger = '整';//整型完以后的单位var cnIntLast = '元';//最大处理的数字var maxNum = 999999999999999.9999;//金额整数部分var integerNum;//金额小数部分var decimalNum;//输出的中文金额字符串var chineseStr = '';//分离金额后用的数组,预定义var parts;if (money == '') {return '';}money = parseFloat(money);if (money >= maxNum) {//超出最大处理数字return '';}if (money == 0) {chineseStr = cnNums[0] + cnIntLast + cnInteger;return chineseStr;}//转换为字符串money = money.toString();if (money.indexOf('.') == -1) {integerNum = money;decimalNum = '';} else {parts = money.split('.');integerNum = parts[0];decimalNum = parts[1].substr(0, 4);}//获取整型部分转换if (parseInt(integerNum, 10) > 0) {var zeroCount = 0;var IntLen = integerNum.length;for (var i = 0; i < IntLen; i++) {var n = integerNum.substr(i, 1);var p = IntLen - i - 1;var q = p / 4;var m = p % 4;if (n == '0') {zeroCount++;} else {if (zeroCount > 0) {chineseStr += cnNums[0];}//归零zeroCount = 0;chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];}if (m == 0 && zeroCount < 4) {chineseStr += cnIntUnits[q];}}chineseStr += cnIntLast;}//小数部分if (decimalNum != '') {var decLen = decimalNum.length;for (var i = 0; i < decLen; i++) {var n = decimalNum.substr(i, 1);if (n != '0') {chineseStr += cnNums[Number(n)] + cnDecUnits[i];}}}if (chineseStr == '') {chineseStr += cnNums[0] + cnIntLast + cnInteger;} else if (decimalNum == '') {chineseStr += cnInteger;}return chineseStr;};

如何调用

         函数/方法写好在上面了,该如何调用呢?

<script type="text/javascript">/*** 遍历数字式的金额,将之转化为汉字* */$(function getCNMoney() {//遍历类名为money_num的元素,获取其文本,将之传给转换方法$('.money_num').each(function () {var money_num = $(this).text();$(this).parent().siblings('.shortSpan').children('.money_CN').text(convertCurrency(money_num));});});</script>

实现效果

在这里插入图片描述


http://chatgpt.dhexx.cn/article/IKYHY85T.shtml

相关文章

Java 16进制报文转换中英文报文(通过字节转换)

最近在搞这个16进制报文,网上找了很多地方&#xff0c;解出来的结果不是乱码就是报错&#xff0c;干脆自己写了。 大概是这样的&#xff0c;16进制的报文大家都知道是什么样子 例如: 3C E4 BA A4 E6 98 93 E6 88 90 E5 8A 9F EF BC 81 3E 20 3C 42 61 6B 31 2F 3E 因为其中包…

通过C#进行中英文转换

通过C#进行中英文转换 编写相应语言的XML文件&#xff0c;添加xml文件 ChineseSimplified.xml文件内容 <?xml version"1.0" encoding"GB2312" ?> <Softimite Language"12"><Form><Name>LoginForm</Name><…

【Adobe After Effects中英文转换2019——2023版】

** Adobe After Effects中英文转换2019——2023版 ** 如果是默认安装的软件&#xff0c;在桌面右击AE图标&#xff0c;点击打开文件所在位置&#xff0c;来到软件安装目录 C:\Program Files\Adobe\Adobe After Effects 2023\Support Files 找到AMT文件夹 点击进入&#xf…

在线中英文符号转换工具

在线中英文符号转换工具 在线中英文符号转换工具 将中文符号转换成英文符号或将英文符号转换成中文符号&#xff0c; 将单引号‘’都转换成’&#xff0c; 将双引号“”都转换成" 将中括号【】转换成[]&#xff0c; 将大括号&#xff5b;&#xff5d;转换成{} 将逗号&…

英文表格如何快速转换为中文?

今天跟大家分享一下英文表格如何快速转换为中文&#xff1f; 1.首先打开Excel文件&#xff0c;选中要翻译的单元格&#xff0c;点击【DIY工具箱】 ​ 2.点击【翻译】 3.选择【有道翻译】 4.将翻译语言设置为中文&#xff0c;然后点击【确定】 5.鼠标点击一个合适的单元格作为翻…

英文转换-在线英文批量转换器免费

英文转换&#xff0c;怎么找到好的英文转换器&#xff1f;今天给大家分享一款免费批量的英文转换器汇集了世界最好的几个翻译平台&#xff08;百度/谷歌/有道&#xff09;&#xff0c;为什么这么多人使用它&#xff1f;首先第一点翻译质量高&#xff0c;选择性多。第二点可以批…

php 英文转中文,中文转换成英文

[php]代码库/** * 中文转换成英文 */ function pinyin($_String, $_Codegb2312){ $_DataKey "a|ai|an|ang|ao|ba|bai|ban|bang|bao|bei|ben|beng|bi|bian|biao|bie|bin|bing|bo|bu|ca|cai|can|cang|cao|ce|ceng|cha". "|chai|chan|chang|chao|che|chen|cheng|c…

C#小知识之中英文转换、去空格

一、中英文转换 1、安装NPinYin 2、编写代码 string str "这里是测试的中文字符串"; string str1 Pinyin.GetChineseText(str); string str2 Pinyin.GetInitials(str); string str3 Pinyin.GetPinyin(str);Console.WriteLine("取和拼音相同的汉字列表&…

Qt 语言家实现中英文切换(解决纯代码添加部件的中英文转换问题)

Qt 语言家实现中英文切换&#xff08;解决纯代码添加部件的中英文转换问题&#xff09; 关于.ts和.qm文件的生成&#xff0c;更新翻译、发布翻译等步骤就不多说了&#xff0c;其他博主有大量的描述。 现在我要解决的是中英文未完全转换的问题如下图&#xff1a; 如上图所示&a…

系统的学习网络编程,这篇就够了!(来收藏夹里吃灰)

主机字节序和网络字节序&#xff1a; 在32位机器上&#xff0c;累加器一次能装载4个字节&#xff0c;这四个字节在内存中排列顺序将影响它被累加器装载成的整数的值 大端字节序&#xff08;网络字节序&#xff09;&#xff1a;一个整数的高位字节存储在内存的低地址处 小端字节…

玩转RT-Thread之荔枝派Nano(全志F1C100S) 新手上路

玩转RT-Thread之荔枝派Nano(全志F1C100S) 一、新手上路 --作者&#xff1a;燕十三(flyingcys) blog:http://blog.csdn.net/flyingcys --荔枝派nano/RTT非官方群&#xff1a;711174828 在此感谢 RT-Thread官方成员uestczyh222提供的荔枝派Nano内核移植、rttbootloader文件、…

技术杂谈-再谈软硬SDN(2)

以下文章来源于微信公众号&#xff1a;网络里卖艺的小青年 &#xff0c;作者我就是那个KK 不好意思&#xff0c;本文有点长&#xff0c;需要阅读10-15分钟。 上一篇文章得到了很多朋友的反馈&#xff0c;软硬SDN各自有各自的优势和特点&#xff0c;对于之前的文字&#xff0c;…

技术杂谈-再谈软硬SDN(1)

以下文章来源于微信公众号&#xff1a;网络里卖艺的小青年 &#xff0c;作者KkBLuE 我曾在SDNLAB和TF中文社区联合举办的直播活动上做了一次分享&#xff0c;讨论到软件SDN和硬件SDN的话题&#xff0c;巧合的是&#xff0c;看到国内大牛厂家也在讨论软硬之路&#xff0c;于是就…

展示一下香蕉派路由Android系统

没什么好说的&#xff0c;第一版的系统&#xff0c;Android部分还可以&#xff0c;路由设置确实有闪退现象。等稳定版发布&#xff0c;可以把机顶盒和路由二合一&#xff0c;再接个SSD&#xff0c;还是很不错的。 硬件 开机 桌面 安卓程序 安卓设置 可以打开USB调试&#xff0…

网络收集的逻辑思维题

一个有意思的逻辑训练题目 题目如下&#xff1a; 有两个大于1小于100的自然数x,y&#xff0c;老师告诉小明两个数的和&#xff0c;告诉小强两个数的积。已知小明和小强足够聪明。 下面是两个人的对话&#xff1a; 小强&#xff1a;我不知道这两个数是多少。&#xff08;<沉默…

物联网技术之PLC

大家好&#xff0c;欢迎关注技福小咖。今天给大家讲讲物联网技术中的PLC。 可编程逻辑控制器(PLC) 几乎存在于所有现代工业中。尽管它们有多种形状和形式&#xff0c;但它们有一个目标&#xff1a;在复杂的工业应用中实时控制、测量和执行任务。 几十年来&#xff0c;PLC一直…

旭日X3派 AI推理(yolov5)

sunrise AI推理 旭日派中最让其期待的就是其中的BPU加速器&#xff0c;可以提供5TOPS的等效AI算力。 X3芯片概述 BPU是地平线自研的AI加速核&#xff0c;在设计过程中具体结合了AIoT/Auto的场景需求&#xff0c;从算法、计算架构、编译器三个方面进行了软硬协同优化&#xff…

Orangepi(香橙派)提高实时性

Orangepi实时性能优化 提高实时性的方法打内核 RT 补丁、使用 wiringpi 包 解决卡顿问题使用 "isoclpus xx" 禁用核心 解决卡顿问题问题解析&#xff01;cmdline.txt问题写入 /proc/cmdlline 文件出错 提高实时性的方法 首先&#xff0c;本人使用的是 orangepi one …

深入理解Linux网络——内核是如何接收到网络包的

文章目录 一、相关实际问题二、数据是如何从网卡到协议栈的1、Linux网络收包总览2、Linux启动1&#xff09;创建ksotfirqd内核线程2&#xff09;网络子系统初始化3&#xff09;协议栈注册4&#xff09;网卡驱动初始化5&#xff09;网卡启动 3、迎接数据的到来1&#xff09;硬中…

banana pi 香蕉派资源站点

banana pi 香蕉派公共号&#xff1a;SINOVOIP-BPI banana pi 香蕉派中文创客论坛&#xff1a; http://www.banana-pi.org.cn banana pi 英文社区&#xff1a; http://www.banana-pi.org banana pi 产品网站&#xff1a; http://www.banana-pi.com banana pi 工厂网站&#xff1…