首页 > 其他分享 >将人民币金额转换为大写 跨单位加零

将人民币金额转换为大写 跨单位加零

时间:2023-04-20 12:05:38浏览次数:29  
标签:10 转换 floor 大写 replace 加零 unit var Math

/** 数字金额大写转换(可以处理整数,小数,负数) */  
function upDigit(n)   
{  
    var fraction = ['角', '分'];  
    var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];  
    var unit = [ ['元', '万', '亿'], ['', '拾', '佰', '仟']  ];  
    var head = n < 0? '欠': '';  
    n = Math.abs(n);  
  
    var s = '';  
  
    for (var i = 0; i < fraction.length; i++)   
    {  
        s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, '');  
    }  
    s = s || '整';  
    n = Math.floor(n);  
  
    for (var i = 0; i < unit[0].length && n > 0; i++)   
    {  
        var p = '';  
        for (var j = 0; j < unit[1].length && n > 0; j++)   
        {  
            p = digit[n % 10] + unit[1][j] + p;  
            n = Math.floor(n / 10);  
        }  
        s = p.replace(/(零.)*零$/, '').replace(/^$/, '零')  + unit[0][i] + s;  
    }  
    return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整');  
}

标签:10,转换,floor,大写,replace,加零,unit,var,Math
From: https://blog.51cto.com/u_16080829/6209396

相关文章

  • 3-2 输入一个8位二进制数,将其转换为十进制数输出。
    设计思路:c++语言的循环结构以及函数的定义及使用相结合可实现程序的运行。 代码:#include<iostream>usingnamespacestd;doublepower(doublex,intn);intmain(){intvalue=0;cout<<"Enteran8bitbinarynumber:";for(inti=7;i>=0;i--)char......
  • 数制转换
    自然语言解决问题:该题目主要用来处理不同进制间互相转化,将原数转换成十进制数字,接着求出转换成目标数制后字符数组的长度,并逆序打印字符数组。具体代码:#include<stdio.h>#defineMAXCHAR101intchar_to_num(charch);charnum_to_char(intnum);longsource_to_decimal(char......
  • FS2455高效率的同步降压DC-DC转换器5A输出电流
    概述FS2455是一种高效率的同步降压DC-DC转换器,具有5A输出电流。 FS2455在4.5V到30V的宽输入电压范围内工作, 集成主开关和同步开关,具有非常低的RDS(ON)以最小化传导损失。 FS2455具有轻载时的应用和高效率。此外,它的工作频率是恒定的在连续导通模式下为500kHz,以使电感器和电容器的......
  • gotenberg+ chromiumly + pdf.js 进行office 文档转换以及预览处理
    日常中office预览是一个比较常见的问题,基于微软的officeonline是一个选择,但是移动端效果不是很好就有pdf以及一些基于生成图片的方案也是不错的,以下是基于gotenberg+chromiumly的一个尝试简单说明gotenberg是基于golang开发的包装了Chromium以及LibreOffice的基于api......
  • 数制转换
    给定一个M进制的数x,实现对x向任意一个非M进制的数的转换。利用字符和数字之间的转换将要变换进制的数进行转换成要求进制的数。#include<iostream>usingnamespacestd;#defineMAXCHAR101intchar_to_num(charch){ if(ch>='0'&&ch<='9') { returnch-'0'; }else{ returnch......
  • 数制转换
    问题描述:给定一个M数制的整数x,转换为N数制的数并输出;问题分析:数制的任意转换需要清除数制与数制之间的转换关系,一般来说十进制与其他数制的转换是较为简单和有规律的;所以可以先将改数制转换为十进制数再转换为N进制数;算法设计:1.输入一个整数M作为其起始的数制2.输入一个M数制......
  • java -- 缓冲流、转换流、序列化流
    缓冲流缓冲流,也叫高效流,按照数据类型分类:字节缓冲流:BufferedInputStream,BufferedOutputStream字符缓冲流:BufferedReader,BufferedWriter缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。字节缓......
  • 字符串转换方法
    字符串转换方法字符串转换函数转换为字符数组转换为字节数组将旧字符串替换为新字符串代码示例publicclassDemo02{publicstaticvoidmain(String[]args){//替换为字符数组//使用toCharArray方法char[]chars="abcdef".to......
  • java 用 Java 将 HashMap 转换为 TreeMap 的程序
    转载自:https://www.moonapi.com/news/24923.html HashMap 是Java1.2以来Java集合的一部分。它提供了以(键、值)对存储数据的JavaMap接口的基本实现。要访问HashMap中的值,必须知道它的键。哈希映射被称为哈希映射,因为它使用哈希技术来存储数据。Java中的树图和抽象......
  • hdoj 夹角有多大(题目已修改,注意读题) 2076 (数学&转换)
    夹角有多大(题目已修改,注意读题)TimeLimit:1000/1000MS(Java/Others)    MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):13233    AcceptedSubmission(s):5214ProblemDescription时间过的好快,一个学期就这......