菜的像徐坤
排名
7
文章
192
粉丝
15
评论
16
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

JS 金额转大写

3805人阅读 2022/9/20 17:21 总访问:960090 评论:0 收藏:0 手机
分类: Jquery

前言

直接上代码


JS

  1. function convertCurrency(money{
  2.     //处理负数
  3.     money = money.toString();
  4.     var preStr = "";
  5.     if (money.indexOf("-") >= 0) {
  6.         money = money.replace("-""");
  7.         preStr = "负";
  8.     }
  9.     //汉字的数字
  10.     var cnNums = new Array('零''壹''贰''叁''肆''伍''陆''柒''捌''玖');
  11.     //基本单位
  12.     var cnIntRadice = new Array('''拾''佰''仟');
  13.     //对应整数部分扩展单位
  14.     var cnIntUnits = new Array('''万''亿''兆');
  15.     //对应小数部分单位
  16.     var cnDecUnits = new Array('角''分''毫''厘');
  17.     //整数金额时后面跟的字符
  18.     var cnInteger = '整';
  19.     //整型完以后的单位
  20.     var cnIntLast = '元';
  21.     //最大处理的数字
  22.     var maxNum = 999999999999999.9999;
  23.     //金额整数部分
  24.     var integerNum;
  25.     //金额小数部分
  26.     var decimalNum;
  27.     //输出的中文金额字符串
  28.     var chineseStr = '';
  29.     //分离金额后用的数组,预定义
  30.     var parts;
  31.     if (money == '') { return ''; }
  32.     money = parseFloat(money);
  33.     if (money >= maxNum) {
  34.         //超出最大处理数字
  35.         return '';
  36.     }
  37.     if (money == 0) {
  38.         chineseStr = cnNums[0] + cnIntLast + cnInteger;
  39.         return chineseStr;
  40.     }
  41.     //转换为字符串
  42.     money = money.toString();
  43.     if (money.indexOf('.') == -1) {
  44.         integerNum = money;
  45.         decimalNum = '';
  46.     } else {
  47.         parts = money.split('.');
  48.         integerNum = parts[0];
  49.         decimalNum = parts[1].substr(04);
  50.     }
  51.     //获取整型部分转换
  52.     if (parseInt(integerNum, 10) > 0) {
  53.         var zeroCount = 0;
  54.         var IntLen = integerNum.length;
  55.         for (var i = 0; i < IntLen; i++) {
  56.             var n = integerNum.substr(i, 1);
  57.             var p = IntLen - i - 1;
  58.             var q = p / 4;
  59.             var m = p % 4;
  60.             if (n == '0') {
  61.                 zeroCount++;
  62.             } else {
  63.                 if (zeroCount > 0) {
  64.                     chineseStr += cnNums[0];
  65.                 }
  66.                 //归零
  67.                 zeroCount = 0;
  68.                 chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
  69.             }
  70.             if (m == 0 && zeroCount < 4) {
  71.                 chineseStr += cnIntUnits[q];
  72.             }
  73.         }
  74.         chineseStr += cnIntLast;
  75.     }
  76.     //小数部分
  77.     if (decimalNum != '') {
  78.         var decLen = decimalNum.length;
  79.         for (var i = 0; i < decLen; i++) {
  80.             var n = decimalNum.substr(i, 1);
  81.             if (n != '0') {
  82.                 chineseStr += cnNums[Number(n)] + cnDecUnits[i];
  83.             }
  84.         }
  85.     }
  86.     if (chineseStr == '') {
  87.         chineseStr += cnNums[0] + cnIntLast + cnInteger;
  88.     } else if (decimalNum == '') {
  89.         chineseStr += cnInteger;
  90.     }
  91.     return preStr+chineseStr;
  92. }


评价

JS与Controller中分割字符串的方法

js: varstr=OpenRule; varstrs=newArray(); strs=str.split(&quot;,&quot;); for(vari=0;i&lt;strs.length;i++){ $(&q...

珍藏!! JS CSS不传之秘集合

&lt;!--其中5指每隔5秒刷新一次页面--&gt; &lt;metahttp-equiv=&quot;refresh&quot;content=&quot;5&quot;&gt; =========...

JSON对象和JSON字符串的区别

JSON对象是直接可以使用JQuery操作的格式,如C#中可以用对象(类名)点出属性(方法)一样var str2 = { &quot;name&quot;: ...

对象转JSON

/// &lt;summary&gt; /// 对象转json /// &lt;/summary&gt; public static string ToJson(object jsonObject) ...

来!!!今天玩 JSon

别怪我懒,其实我是真的懒///&lt;summary&gt; ///List转成json ///&lt;/summary&gt; ///&lt;typeparamname=&quot;T&quot...

JS遍历localStorage的键值对

//遍历本地存储localStorage for(vari=0;i&lt;localStorage.length;i++){ varkey=localStorage.key(i);//获取本地存储的K...

拓展JS通用方法来对应c操作

有很多时候,js不能像c#一样有那样多的方法操作,但是我们可以自己写一些方法,让他拥有:比如最常见的一些:注意:js里的...

JS的localStorage

localStorage的优势1、localStorage拓展了cookie的4K限制2、localStorage会可以将第一次请求的数据直接存储到本地,这个相...

JS监听input、keydown,有输入法时打字完成后触发事件

在给输入框绑定input或keydown事件时预期效果是有输入法时,输入中文后触发事件,不希望输一个字母就触发一次事件可以用到c...

JS截取两个字符中间的字符串

使用正则表达式来取比如我们要取brush:js;toolbar:false 这个字符串冒号和分号中间的字符串可以varclassname=&quot;brush:j...

Vue.JS+Layer实现表格数据绑定与更新

一:使用Vue.js绑定好数据与更新事件 使用v-on绑定好事件,在事件里边直接把该行数据传递进去,在更新方法里边就可以直接...

JS使用正则进行常用验证

?:问号前面的数字匹配0次或1次,也就是懒惰匹配,最多匹配一次+:匹配1次到无穷次*:匹配0次到无穷次验证只能:数字、字母...

JS字符串的替换

vartitle=&quot;我是你的大表哥&quot;; title=title.replace(&quot;大表哥&quot;,&quot;大表妹&quot;); alert(title);输...

Vue.JS 实现省市联动

HTML代码&lt;divid=&quot;pro_citys&quot;&gt; 省:&lt;selectid=&quot;provice&quot;v-on:change=&quot;prochange()&quo...

Vue.JS常见问题

一:花括号当做字符串显示的问题1:检查下绑定到vue.js的id是否重复,如果id重复了,就有可能存在这种问题,因为有可能把数...

vue.JS常用指令

v-html可以把字符串当成一个html来渲染,而不是原样输出Html类似.net mvc中的@Html.Raw()方法&lt;divv-html=&quot;item.tit...