用JavaScript将数字转换为大写金额

项目中用到的,用JavaScript将数字转换为大写金额,分享出来给大家


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

var digitUppercase = function(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(/^整$/, ‘零元整‘);

};

console.log(digitUppercase(7682.01)); //柒仟陆佰捌拾贰元壹分

console.log(digitUppercase(7682));  //柒仟陆佰捌拾贰元整

console.log(digitUppercase(951434677682.00)); //玖仟伍佰壹拾肆亿叁仟肆佰陆拾柒万柒仟陆佰捌拾贰元整

时间: 2024-11-10 08:19:27

用JavaScript将数字转换为大写金额的相关文章

JS 数字转换为大写金额

function DX(n) { if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) return "数据非法"; var unit = "千百拾亿千百拾万千百拾元角分", str = ""; n += "00"; var p = n.indexOf('.'); if (p >= 0) n = n.substring(0, p) + n.substr(p+1, 2); unit = unit.s

javascript避免数字计算精度误差的方法详解

本篇文章主要是对javascript避免数字计算精度误差的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 如果我问你 0.1 + 0.2 等于几?你可能会送我一个白眼,0.1 + 0.2 = 0.3 啊,那还用问吗?连幼儿园的小朋友都会回答这么小儿科的问题了.但是你知道吗,同样的问题放在编程语言中,或许就不是想象中那么简单的事儿了.不信?我们先来看一段 JS. var numA = 0.1; var numB = 0.2; alert( (numA + numB) === 0.3

java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果

1 package com.llh.demo; 2 3 import java.util.Scanner; 4 5 /** 6 * 7 * @author llh 8 * 9 */ 10 public class Test { 11 /* 12 * 将任意一个十进制数数字转换为二进制形式,并输出转换后的结果(使用数组存储) 13 */ 14 public static void main(String[] args) { 15 Scanner sc = new Scanner(System.in

javascript学习 - 数字和字符串转换

数字和字符串转换 上一篇博客里我写了字符串切割这里我写下,把字符串和数字之间进行转换. Number 简单的就是把一个数字字符串转换成一个整数. 代码如下: var num = "12345"; var num_a = Number(num) + 1; alert(num_a); //num_a的值是: 12346 假如我们是要把字符串中的一段数字截取出来操作就需要使用上一篇博客说的字符串切割了.假如不切割呢? var str = "iamalps1992"; va

将整数n这个数字转换为对应的字符串

题目:实现一个函数itoa(int n,char s[]),将整数n这个数字转换为对应的字符串,保存到s中. 题目分析: 对于这一个问题,我们首先能够联想到字符在计算机存储是以自身的ASCII码存储的,例如:'0'存储为48,'1'存储为49,那么如果给'0'-'9'这些字符相应的减去'0',刚好对应的是数字的0-9:这是我们做这个题目的前提. 同时,可以定义一个数组,将转换好的数字先保存下来,这时会发现数组中保存的数字与我们期望得到的数字顺序相反,这时可以考虑数组元素的逆置.将这些问题解决了,

人民币 小写金额转换为大写金额

### 人民币 小写金额转换为大写金额 标签(空格分隔): 人民币 小写金额转换为大写金额 --- jsp:```div class="form-group"><label class="col-sm-4 control-label">合计人民币金额(小写):</label><div class="col-sm-7"><input id="totalRmbLower" type=

ORACLE中将数字转换为英文

SELECT LEVEL, to_char(to_date(LEVEL,'J'),'Jsp') FROM dual CONNECT BY LEVEL <= 1000 运行结果如下图所示:   说明: TO_CHAR(aDate,'JSP')是指日期aDate距离JULIAN日期的第一天即4712-01-01BC的天数,也就是从公元前4712年的1月1号到aDate这个日期的天数的英文拼写. JULIAN日期的范围是公元前4712-01-01到公元9999-01-01.期间的天数是我们能够拼写的最

关于C#中将数字转换为指定格式

将数字转换为钱格式: double money=11226.00; 转换为金钱格式:¥11,226.00 var newMoney=money.ToStrring("c") 转换为每三位数用逗号隔开格式:11,226.00 var newMoney=money.ToStrring("n");

js中数字转换为字符串 几种方法

a. 要把一个数字转换为字符串,只要给它添加一个空的字符串即可: var n = 100; var n_as_string = n + ""; b. 要让数字更加显式地转换为字符串,可以使用String()函数:  var string_value = String(number); c. 使用toString()方法:  string_value = number.toString(); Number对象的(基本的数字转换为Number对象,以便可以调用这个方法)toString()