当前位置:   article > 正文

vue 金额大写小转换 数字转换 小写转大写 保留两位小数_数字金额大小写带点 vue

数字金额大小写带点 vue

正常显示拾万元 

  1. // 大写转换
  2. digitUppercase(n) {
  3. let unit = "万仟佰拾亿仟佰拾万仟佰拾元角分",
  4. str = "";
  5. n = String(Math.round(n * Math.pow(10, 2)));
  6. unit = unit.substr(unit.length - n.length);
  7. for (let i = 0; i < n.length; i++) {
  8. str += "零壹贰叁肆伍陆柒捌玖".charAt(n.charAt(i)) + unit.charAt(i);
  9. }
  10. this.digitUppercase1 = str
  11. .replace(/零(仟|佰|拾|角)/g, "零")
  12. .replace(/(零)+/g, "零")
  13. .replace(/零(万|亿|元)/g, "$1")
  14. .replace(/(亿)万|壹(拾)/g, "$1$2")
  15. .replace(/^元零?|零分/g, "")
  16. .replace(/元$/g, "元整");
  17. },

标准显示 壹拾万元 

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/338797
推荐阅读
相关标签
  

闽ICP备14008679号