飞道的博客

原生js将数字金额转汉字金额 vue中数字金额转汉字金额

586人阅读  评论(0)

网上找的个案例,略加整理,简已封装,挺完美的。

功能是将数字金额转为汉字金额

vue中,自行在assets新建js,封装如下,复制粘贴进去即可


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

页面中引入(自行修改路径以及js文件名)

import { toChies } from "@/assets/...js文件";

使用(val为字符串格式)

toChies(val)

个人前端博客 http://sharedblog.cn/

原地址 http://www.sharedblog.cn/post/212.html

前端软件下载 http://iqzhan.com/category-23.html


转载:https://blog.csdn.net/tianpeng1996/article/details/112178483
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场