0到9的数字替换成零 到 玖 的 大写汉字的函数

function changeNumMoneyToChinese(money) {
  var cnNums = new Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"); //汉字的数字
  var cnIntRadice = new Array("", "拾", "佰", "仟"); //基本单位
  var cnIntUnits = new Array("", "万", "亿", "兆"); //对应整数部分扩展单位
  var cnDecUnits = new Array("角", "分", "毫", "厘"); //对应小数部分单位
  var cnInteger = "整"; //整数金额时后面跟的字符
  var cnIntLast = "元"; //整型完以后的单位
  var maxNum = 999999999999999.9999; //最大处理的数字
  var IntegerNum; //金额整数部分
  var DecimalNum; //金额小数部分
  var ChineseStr = ""; //输出的中文金额字符串
  var parts; //分离金额后用的数组,预定义
  if (money == "") {
  return "";
  }
  money = parseFloat(money);
  if (money >= maxNum) {
  alert(‘超出最大处理数字‘);
  return "";
  }
  if (money == 0) {
  ChineseStr = cnNums[0] + cnIntLast + cnInteger;
  return ChineseStr;
  }
  money = money.toString(); //转换为字符串
  if (money.indexOf(".") == -1) {
  IntegerNum = money;
  DecimalNum = ‘‘;
  } else {
  parts = money.split(".");
  IntegerNum = parts[0];
  DecimalNum = parts[1].substr(0, 4);
  }
  if (parseInt(IntegerNum, 10) > 0) { //获取整型部分转换
  var zeroCount = 0;
  var IntLen = IntegerNum.length;
  for (var i = 0; i < IntLen; i++) {
  var n = IntegerNum.substr(i, 1);
  var p = IntLen - i - 1;
  var q = p / 4;
  var m = p % 4;
  if (n == "0") {
  zeroCount++;
  } else {
  if (zeroCount > 0) {
  ChineseStr += cnNums[0];
  }
  zeroCount = 0; //归零
  ChineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
  }
  if (m == 0 && zeroCount < 4) {
  ChineseStr += cnIntUnits[q];
  }
  }
  ChineseStr += cnIntLast;
  //整型部分处理完毕
  }
  if (DecimalNum != ‘‘) { //小数部分
  var decLen = DecimalNum.length;
  for (var i = 0; i < decLen; i++) {
  var n = DecimalNum.substr(i, 1);
  if (n != ‘0‘) {
  ChineseStr += cnNums[Number(n)] + cnDecUnits[i];
  }
  }
  }
  if (ChineseStr == ‘‘) {
  ChineseStr += cnNums[0] + cnIntLast + cnInteger;
  } else if (DecimalNum == ‘‘) {
  ChineseStr += cnInteger;
  }
  return ChineseStr;
  }

时间: 2024-08-25 02:50:42

0到9的数字替换成零 到 玖 的 大写汉字的函数的相关文章

数字人民币(RMB)转化为大写汉字表达

using System.Text; /// <summary>/// ToChineseValue 的摘要说明/// 人民币(RMB)转化为大写字母 /// </summary>public class ToChineseValue{    private enum chineseChar { 零, 壹, 贰, 叁, 肆, 伍, 陆, 柒, 捌, 玖 };    private enum charValue { 个 = 1, 十, 百, 千 };    private enum

将金额数字转换为大写汉字的js函数

1 //将金额数字转换为大写汉字的函数 2 function convertCurrency(money) { 3 //汉字的数字 4 var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖'); 5 //基本单位 6 var cnIntRadice = new Array('', '拾', '佰', '仟'); 7 //对应整数部分扩展单位 8 var cnIntUnits = new Array('', '

数据库中将null 替换成 0 或者其他文本

Oracle:可以用nvl(p1,p2) 该函数,将p1替换成p2, 但是请注意:p1,p2必须是同类型的,可以是数值number ,char ,date 比如不能nvl('jack',5)这样用,一个是char一个是number了 简单明了:nvl(null,0) 就可以解决了. 这里要说明一下小tip:在oracle中 当组函数[又名聚合函数]要处理数据全是空的时候,除了count()函数返回的是0,其他组函数全部返回空值. 所以当我们处理聚合函数的时候,count()函数不用特殊考虑. S

方便的将数字转成字符串类型并在前面补0

有的时候需要将数字转化成字符串来保存或使用.一般可以直接使用或者用str()转一个数据类型就好了. 但是有的时候对数字位数有要求,不足的位数前面用0补齐.比如1需要变成"01"或"001",处理类似工号的时候可能会有这种需求. 当然实现起来并不难,不过如何可以更加简洁方便的实现,而不是写一大堆的判断语句.找到一个一句判断语句也不需要的实现方法. num = input("请输入一个数字(范围0-999):") print(("00%s&

NFA转换成DFA——汉字形式数字转换成整数数字

偶然间遇到了一个需求:汉字形式数字转换成整数数字.如果不处理意外情况,可以写的很简单(比如不会出现三三等),详情可以看这里.但是,想着可以写成一个FA的形式,于是乎,发现并不是想象中的那么简单..因为写成FA就发现,要处理非法形式的问题,还是有点麻烦的. 好不容易写成了FA,发现是个NFA,于是乎写了个NFA转换成DFA的代码,也支持了一套简单的FA的定义规则.代码如下: package ie; import java.util.ArrayList; import java.util.HashM

在C#中将数字转换成中文

上篇我们讲了在MSSQL中将数字转换成中文,这篇我们讲讲在C#中将数字转换成中文 下篇将讲一下如何将金额转换成中文金额,废话不多说,具体代码如下: /// <summary> /// 数字转中文 /// </summary> /// <param name="number">eg: 22</param> /// <returns></returns> public string NumberToChinese(in

js 将数字转换成人民币大写的方法

//将数字转换成人民币大写的方法 var digitUppercase = function (n) { var fraction = ['角', '分']; var digit = [ '零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖' ]; var unit = [ ['元', '万', '亿'], ['', '拾', '佰', '仟'] ]; var IsNum = Number(n); if (!isNaN(IsNum)) { var hea

中文数字转换成阿拉伯数字(一千二百三十四万五千六百七十八--&gt;12345678)

昨天老大问我又没有写过中文数字转换成阿拉伯数字,我说没有,我说那应该简单啊,就是将中文对应的数字换成阿拉伯数字就好了啊,比如一就换成1,二就换成2…十换成10.可是那么问题来了…… 一十二呢…不能是1102吧…这不就坑爹了吗?一百万呢………所有我苦苦思索,花费了我差不多半天的时间,终于写出了下面的程序. 1 public static void main(String[] args){ 2 3 Map<Character, String> numberMap = new HashMap<

爪哇国新游记之二十----将数字转换成汉子大写形式

/** * 辅助类 * 用于记载字符和位置 * */ class CharPos{ char c; int pos; public CharPos(char c,int pos){ this.c=c; this.pos=pos; } } /** * 将数字转化成汉字大写形式 * */ public class CnNumMaker { private String integerPart;// 整数部分 private String decimalPart;// 小数部分 private Sta