ZBLOG

js实现一个数字转金额大写

以下是一个使用JavaScript实现将数字转换为金额大写的示例代码:

  1. function numberToWords(num) {
  2. const units = ['', '万', '亿', '万亿'];
  3. const digits = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'];
  4. const decimals = ['角', '分'];
  5. if (num === 0) return "零元整";
  6. let result = "";
  7. let integerPart = Math.floor(num);
  8. let decimalPart = Math.round((num - integerPart) * 100);
  9. // 处理整数部分
  10. while (integerPart > 0) {
  11. let groupNum = integerPart % 10000; // 每次处理四位数
  12. integerPart = Math.floor(integerPart / 10000);
  13. if (groupNum !== 0) {
  14. let groupResult = "";
  15. // 处理当前组的每一位数字
  16. for (let i = 0; i < 4; i++) {
  17. let digitNum = groupNum % 10;
  18. groupNum = Math.floor(groupNum / 10);
  19. if (digitNum !== 0) {
  20. groupResult = digits[digitNum] + units[i] + groupResult;
  21. }
  22. }
  23. result = groupResult + result;
  24. }
  25. if (integerPart > 0 && result.length >0){
  26. result= "零"+result;
  27. }
  28. }
  29. // 处理小数部分
  30. if (decimalPart >0 ){
  31. for(let j=1;j>=0;j--){
  32. let decimalDigit=Math.floor(decimalPart/Math.pow(10,j))%10;
  33. if(decimalDigit!==0){
  34. result+=digits[decimalDigit]+decimals[j];
  35. }
  36. }
  37. }
  38. return result + "元整";
  39. }
  40. // 示例用法
  41. console.log(numberToWords(123456789.12)); // 输出:壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角贰分

这段代码将一个数字转换为对应的金额大写形式。例如,输入123456789.12会输出”壹亿贰仟叁佰肆拾伍万陆仟柒佰捌拾玖元壹角贰分”。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=16237

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?