【工具】前端js数字金额转中文大写金额

news2024/11/26 7:42:39

【工具】前端js数字金额转中文大写金额

代码

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>金额转大写</title>
    <style>
        input {
            margin: 5px;
            padding: 10px;
            font-size: 16px;
        }
    </style>
</head>
<body>
    <h1>金额转大写</h1>
    <label for="amount">输入金额(整数或小数):</label>
    <input type="text" id="amount" placeholder="请输入金额" oninput="convertToChinese()" />
    <br />
    <label for="amountInWords">大写金额:</label>
    <input type="text" id="amountInWords" readonly />
    
    <script>
        function convertToChinese() {
            const amountInput = document.getElementById('amount');
            const amountInWords = document.getElementById('amountInWords');
            const amount = parseFloat(amountInput.value);

            if (!isNaN(amount)) {
                amountInWords.value = toChinaNum(amount);
            } else {
                amountInWords.value = '';
            }
        }

        function toChinaNum(number) {
            if (isNaN(number) || !isFinite(number)) {
                throw new Error('传值错误');
            }
            const fraction = ['角', '分'];
            const digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
            const unit = [
                ['元', '万', '亿'],
                ['', '拾', '佰', '仟']
            ];
            let num = Math.abs(number);
            let s = '';
            const decimalPart = Math.floor((num * 100) % 100);
            fraction.forEach((item, index) => {
                s += (digit[Math.floor(decimalPart / (10 ** (1 - index))) % 10] + item).replace(/零./, '');
            });
            s = s || '';
            num = Math.floor(num);
            for (let i = 0; i < unit[0].length && num > 0; i += 1) {
                let p = '';
                for (let j = 0; j < unit[1].length && num > 0; j += 1) {
                    p = digit[num % 10] + unit[1][j] + p;
                    num = Math.floor(num / 10);
                }
                s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s;
            }
            return s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^元$/, '零元');
        }

    </script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2202015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

快递批量查询物流追踪只揽收无物流信息的单号

在电子商务和物流领域&#xff0c;快递单号的追踪是确保货物顺利送达的关键环节。然而&#xff0c;在实际操作中&#xff0c;经常会遇到一些只显示揽收信息而没有后续物流更新的单号&#xff0c;这给商家和买家都带来了不小的困扰。本文将介绍如何通过快递批量查询物流的方法&a…

jdk多版本来回切换不生效

本人电脑安装了两个jdk1.8跟17 但是安装完17后发现怎么切换版本都是17&#xff0c;如图 解决思路也很简单&#xff0c;就是找到path 将%JAVA_HOME%/bin提到最前头&#xff0c;就解决了 但是需要注意的是jdk11以上就没有jre了

YOLO11改进|注意力机制篇| 引入SpatialGroupEnhance注意力机制

目录 一、【 SpatialGroupEnhance】注意力机制1.1【 SpatialGroupEnhance】注意力介绍1.2【SpatialGroupEnhance】核心代码 二、添加【SpatialGroupEnhance】注意力机制2.1STEP12.2STEP22.3STEP32.4STEP4 三、yaml文件与运行3.1yaml文件3.2运行成功截图 一、【 SpatialGroupEnh…

leetcode:反转字符串II

题目链接 string reverse(string s1) {string s2;string::reverse_iterator rit s1.rbegin();while (rit ! s1.rend()){s2 *rit;rit;}return s2; } class Solution { public:string reverseStr(string s, int k) {string s1;int i 0;//标记字符串下标int j 0;int length …

程序员在AI时代扮演着多重角色:不仅是AI技术的创造者,也是使用者,更是AIGC的贡献者

程序员在AI时代扮演着多重角色&#xff1a;不仅是AI技术的创造者&#xff0c;也是使用者&#xff0c;更是AIGC的贡献者 引言 大家好&#xff0c;我是猫头虎&#xff0c;在当下的AI时代&#xff0c;程序员不仅是AI技术的推动者&#xff0c;更在这个生态中扮演着多重角色&#…

ARM base instruction -- sdiv

有符号除法运算 Signed Divide divides a signed integer register value by another signed integer register value, and writes the result to the destination register. The condition flags are not affected. 将一个有符号整数寄存器值除以另一个有符号整数寄存器值&am…

YOLOv11训练自己数据集_笔记1

一、前言 官网yolov11-main yolov11代码地址 分析YOLO11的关键改进点 YOLO11 相比之前版本&#xff0c;带来了五大关键改进&#xff1a; 增强特征提取&#xff1a;通过改进Backbone和Neck架构&#xff0c;新增了C3k2和C2PSA等组件&#xff0c;提升了目标检测的精度。 优化效率…

python使用装饰器来统计函数被调用次数、格式化dict以及Python-smtplib邮件发送的IP name possibly forged问题解决

一、python调试&#xff1a;使用装饰器来统计函数被调用次数及格式化dict 喜欢调试的时候显示数据并显示一些其它的信息&#xff0c;比如区分是哪次调用的调试信息&#xff0c;比如友好的显示dict等相对复杂的数据类型&#xff0c;所以这里涉及到两个方面。一是统计函数被调用次…

Centos再生龙系统迁移

Centos再生龙系统迁移 1.准备工作1.1rufus镜像刻录软件1.2再生龙镜像1.3硬盘和U盘2.准备u盘启动工具2.1刻录再生龙镜像3.备份系统3.1选择U盘启动3.2选择分辨率3.3选择中文3.4选择默认键盘配置3.5使用再升龙3.6选择第一个,device-image硬盘/分区存到/来自镜像文件3.7选择local_…

运维问题0004:MM模块-操作MIGO过账报错“对象OFN_YR 2840 WE2840 的编码范围没有找到”

1、问题分析 当在SAP系统MM模块的MIGO过账时出现“对象OFN_YR 2840 WE2840的编码范围没有找到”错误&#xff0c;这通常是因为系统配置中缺少对应的编码范围。先来分析一下报错消息号信息&#xff1a;OFN_YR是后台自动凭证编号范围配置的事务代码;2840是工厂名称 ;WE2840是指接…

地理空间数据共享资源,爱好者进

地理空间数据共享资源&#xff0c;爱好者进 1、1986–2021年中国30m逐年耕地数据集 由于农田的空间和时间模式对食品安全和环境可持续性的供应至关重要&#xff0c;因此长期和准确的农田监测非常重要。研究团队开发了一种新颖、经济的年度农田映射框架&#xff0c;该框架集成…

【C++】适配器stack/queue/priority_queue使用和实现

目录 容器适配器 什么是容器适配器 ​编辑stack stack的了解和使用 使用举例 题目加深 模拟实现 功能实现 测试文件 ​编辑queue queue的了解和使用 使用举例 题目加深 模拟实现 功能实现 测试文件 priority_queue priority_queue的了解和使用 使用举…

基于SpringBoot项目评审系统【附源码】

基于SpringBoot项目评审系统 效果如下&#xff1a; 系统首页界面 学生登录界面 项目信息页面 项目申报页面 专家注册界面 管理员登录界面 管理员功能界面 项目评审界面 评审结果界面 研究背景 在当今快速发展的信息时代&#xff0c;项目评审作为项目管理的关键环节&#xff…

【网络】初识https协议加密过程

初识https协议加密过程 为什么不用http而要使用https常见的加密方式对称加密非对称加密数据摘要&&数据指纹 https的工作过程探究方案一&#xff1a;只使用对称加密方案二&#xff1a;只使用非对称加密方案三&#xff1a;双方都使用对称加密方案四&#xff1a;非对称加密…

毕设分享 基于协同过滤的电影推荐系统

文章目录 0 简介1 设计概要2 课题背景和目的3 协同过滤算法原理3.1 基于用户的协同过滤推荐算法实现原理3.1.1 步骤13.1.2 步骤23.1.3 步骤33.1.4 步骤4 4 系统实现4.1 开发环境4.2 系统功能描述4.3 系统数据流程4.3.1 用户端数据流程4.3.2 管理员端数据流程 4.4 系统功能设计 …

四、Java 概念知识简单了解

一、Java 的类、对象、方法和实例变量 一个 Java 程序可以认为是一系列对象的集合&#xff0c;而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。对象&#xff1a;对象是类的一个实例&#xff0c;有状态&#xff08;实例变量&#xff…

嵌入式面试——FreeRTOS篇(三) 消息队列和队列集

本篇为&#xff1a;消息队列和队列集篇 消息队列 1、FreeRTOS中的消息队列是什么 答&#xff1a; 消息队列是任务到任务、任务到中断、中断到任务数据交流的一种机制(消息传递)。 2、消息队列和全局变量的区别 答&#xff1a; 消息队列作用有点类似于全局变量&#xff0c;但消…

简单的网络爬虫爬取视频

示例代码爬取一个周杰伦相关视频 import requests# 自己想下载的视频链接 video_url https://vdept3.bdstatic.com/mda-qg8cnf4bw5x6bjs5/cae_h264/1720516251158906693/mda-qg8cnf4bw5x6bjs5.mp4?v_from_shkapp-haokan-hbf&auth_key1728497433-0-0-4a32e13f751e04754e4…

谷歌上架,应用明明没问题,咋就成了“恶意软件”?看看可能的原因

作为Google Play上架应用的开发者&#xff0c;大家的普遍感受&#xff1a;比起写代码&#xff0c;上架的过程简直更让人心力交瘁&#xff01;特别是涉及用户数据和隐私保护的时候&#xff0c;稍有疏忽&#xff0c;就可能面临应用被下架、甚至账号被封的风险。 最近听到很多开发…

6.存储过程中的游标使用(6/10)

存储过程中的游标使用 引言 在数据库编程中&#xff0c;游标&#xff08;Cursor&#xff09;是一种重要的数据库对象&#xff0c;它允许开发者逐行处理查询结果集。这对于需要对每一行数据进行特定处理的场景非常有用&#xff0c;如数据转换、数据清洗、复杂计算等。本文将详…