`
wolfxk
  • 浏览: 8072 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

[转]将阿拉伯数字(小写)转化成中文(大写)

阅读更多

  时间:2003.7.31  
  作者:周长武  
  功能:将阿拉伯数字(小写)转化成中文(大写)  
   
  参数:Num为字符型,小数点之后保留两位,例:Arabia_to_Chinese("1234.06")  
  说明:1.目前本转换仅支持到   拾亿(元)   位,金额单位为元,不能为万元,最小单位为分  
      2.不支持负数  
  修改区  
   
  时间:  
  修改人:  
  原因:  
   
  修改区结束  
  ********************************************************************/  
  function   Arabia_to_Chinese(Num){  
  for(i=Num.length-1;i>=0;i--)  
  {  
  Num   =   Num.replace(",","")//替换tomoney()中的“,”  
  Num   =   Num.replace("   ","")//替换tomoney()中的空格  
  }  
  Num   =   Num.replace("¥","")//替换掉可能出现的¥字符  
  if(isNaN(Num))   { //验证输入的字符是否为数字  
  alert("请检查小写金额是否正确");  
  return;  
  }  
  //---字符处理完毕,开始转换,转换采用前后两部分分别转换---//  
  part   =   String(Num).split(".");  
  newchar   =   "";    
  //小数点前进行转化  
  for(i=part[0].length-1;i>=0;i--){  
  if(part[0].length   >   10){   alert("位数过大,无法计算");return   "";}//若数量超过拾亿单位,提示  
  tmpnewchar   =   ""  
  perchar   =   part[0].charAt(i);  
  switch(perchar){  
  case   "0":   tmpnewchar="零"   +   tmpnewchar   ;break;  
  case   "1":   tmpnewchar="壹"   +   tmpnewchar   ;break;  
  case   "2":   tmpnewchar="贰"   +   tmpnewchar   ;break;  
  case   "3":   tmpnewchar="叁"   +   tmpnewchar   ;break;  
  case   "4":   tmpnewchar="肆"   +   tmpnewchar   ;break;  
  case   "5":   tmpnewchar="伍"   +   tmpnewchar   ;break;  
  case   "6":   tmpnewchar="陆"   +   tmpnewchar   ;break;  
  case   "7":   tmpnewchar="柒"   +   tmpnewchar   ;break;  
  case   "8":   tmpnewchar="捌"   +   tmpnewchar   ;break;  
  case   "9":   tmpnewchar="玖"   +   tmpnewchar   ;break;  
  }  
  switch(part[0].length-i-1){  
  case   0:   tmpnewchar   =   tmpnewchar   +"元"   ;break;  
  case   1:   if(perchar!=0)tmpnewchar=   tmpnewchar   +"拾"   ;break;  
  case   2:   if(perchar!=0)tmpnewchar=   tmpnewchar   +"佰"   ;break;  
  case   3:   if(perchar!=0)tmpnewchar=   tmpnewchar   +"仟"   ;break;  
  case   4:   tmpnewchar=   tmpnewchar   +"万"   ;break;  
  case   5:   if(perchar!=0)tmpnewchar=   tmpnewchar   +"拾"   ;break;  
  case   6:   if(perchar!=0)tmpnewchar=   tmpnewchar   +"佰"   ;break;  
  case   7:   if(perchar!=0)tmpnewchar=   tmpnewchar   +"仟"   ;break;  
  case   8:   tmpnewchar=   tmpnewchar   +"亿"   ;break;  
  case   9:   tmpnewchar=   tmpnewchar   +"拾"   ;break;  
  }  
  newchar   =   tmpnewchar   +   newchar;  
  }  
  //小数点之后进行转化  
  if(Num.indexOf(".")!=-1){  
  if(part[1].length   >   2)   {  
  alert("小数点之后只能保留两位,系统将自动截段");  
  part[1]   =   part[1].substr(0,2)  
  }  
  for(i=0;i<part[1].length;i++){  
  tmpnewchar   =   ""  
  perchar   =   part[1].charAt(i)  
  switch(perchar){  
  case   "0":   tmpnewchar="零"   +   tmpnewchar   ;break;  
  case   "1":   tmpnewchar="壹"   +   tmpnewchar   ;break;  
  case   "2":   tmpnewchar="贰"   +   tmpnewchar   ;break;  
  case   "3":   tmpnewchar="叁"   +   tmpnewchar   ;break;  
  case   "4":   tmpnewchar="肆"   +   tmpnewchar   ;break;  
  case   "5":   tmpnewchar="伍"   +   tmpnewchar   ;break;  
  case   "6":   tmpnewchar="陆"   +   tmpnewchar   ;break;  
  case   "7":   tmpnewchar="柒"   +   tmpnewchar   ;break;  
  case   "8":   tmpnewchar="捌"   +   tmpnewchar   ;break;  
  case   "9":   tmpnewchar="玖"   +   tmpnewchar   ;break;  
  }  
  if(i==0)tmpnewchar   =tmpnewchar   +   "角";  
  if(i==1)tmpnewchar   =   tmpnewchar   +   "分";  
  newchar   =   newchar   +   tmpnewchar;  
  }  
  }  
  //替换所有无用汉字  
  while(newchar.search("零零")   !=   -1)  
  newchar   =   newchar.replace("零零",   "零");  
  newchar   =   newchar.replace("零亿",   "亿");  
  newchar   =   newchar.replace("亿万",   "亿");  
  newchar   =   newchar.replace("零万",   "万");  
  newchar   =   newchar.replace("零元",   "元");  
  newchar   =   newchar.replace("零角",   "");  
  newchar   =   newchar.replace("零分",   "");  
   
  if   (newchar.charAt(newchar.length-1)   ==   "元"   ||   newchar.charAt(newchar.length-1)   ==   "角")  
  newchar   =   newchar+"整"  
  return   newchar;  
  }

摘自:http://topic.csdn.net/t/20031124/17/2489689.html   217楼

分享到:
评论

相关推荐

    js 把阿拉伯数字转成中文大写

    前台页面,通过js转化成中文大写,阿拉伯数字转成中文大写

    人民币数字转换成汉字大写

    人民币数字转换成汉字大写 android Java 运行效率

    阿拉伯数字转换为中文小写数字

    在Android开发过程中,有时我们需要将阿拉伯数字(1, 2, 3...)转换成中文小写数字(一,二,三...),特别是在涉及到文化习惯或者用户界面本地化的时候,如书籍页码显示。这个任务涉及到字符串处理和字符映射,下面...

    pb_函数_将小写数字转换成大写数字

    本文档介绍了一个PB(PowerBuilder)函数,该函数用于将阿拉伯数字(小写数字)转换为中文大写数字。此功能在财务、银行以及其他需要精确且正式表示金额的场景中非常有用。该函数支持从个位数到千万亿级别的数字转换...

    金额阿拉伯数字转换中文大写(全)

    在IT领域,尤其是在财务软件开发或数据处理中,经常需要将阿拉伯数字金额转换为中文大写,以便在财务报表、发票或合同中清晰准确地表示金额。这是因为中文大写数字在金融交易中能减少因书写错误导致的混淆,增强财务...

    金额阿拉伯小写数字转换成大写

    在IT行业中,尤其是在财务软件开发或者处理金融数据时,经常需要将阿拉伯数字(小写)转换为汉字大写,这是因为汉字大写数字在中国的金融交易中是标准的表示方式,可以有效防止因为数字混淆而引起的错误。...

    小写数字转换大写数字

    这通常涉及到将阿拉伯数字(小写)转化为汉字大写,以便于财务报告、发票和正式文档的清晰性和准确性。在中文环境中,大写数字可以避免因为手写或打印不清造成的误解,提高财务凭证的可读性。 小写数字转换为大写...

    小写数字转换成大写的方式

    非常好用的阿拉伯数字,转换成大写字母。很好,有需要的可以下载。

    Android中数字转中文,金额转大写

    首先,数字转中文主要是将阿拉伯数字(如1、2、3等)转换成中文数字(如一、二、三等)。在Java或Kotlin中,我们可以创建一个Map,将数字与对应的中文字符映射起来,然后通过遍历数字字符串并查找对应的中文字符来...

    把大写金额转换成小写的

    2. 将每个数字字符转换为其对应的阿拉伯数字。例如,“壹”转换为1,“伍”转换为5。 3. 注意处理单位,理解其在数值中的位置。例如,“拾”代表十的倍数,“佰”代表百的倍数。 4. 按照数值顺序组合数字,根据单位...

    C#如何将商品金额小写转换成大写(C# .net)

    本篇文章将详细介绍如何在C# .NET环境下,将商品金额的小写阿拉伯数字转换为大写汉字。 首先,我们需要了解汉字数字的基本对应关系。在中文中,小写阿拉伯数字(0-9)与大写汉字数字的对应如下: 1. 0 对应 "零" 2...

    小写人民币转换成大写人民币

    本文将详细介绍如何实现从小写(即阿拉伯数字)到大写(即汉字表示)的人民币金额转换,并通过一个具体的代码示例进行说明。 #### 一、转换规则概述 小写转大写的转换规则主要涉及以下几点: 1. **数字与汉字的...

    小写金额转大写金额(C++)

    在中文中,大写金额的表示法与小写阿拉伯数字完全不同,它使用了一套特殊的汉字来代表每个数字。例如,1对应"壹",2对应"贰",以此类推。转换过程需要遵循一定的规则,如个位、十位、百位、千位等位置上的数字对应...

    金额阿拉伯数字转换中文大写全源码

    佛慈悲,应要求给整个下载在我的资源中,其中包含自学习桌面编程以来所找的资料及未完成的部分学习代码,从未完成的开始转入了另一个急需开发软件的研发工作,所以没时间来作这个的继续,打包原封不动提供学习了. ...

    小写金额转换成大写金额

    在编程领域,尤其是在财务软件开发中,经常需要将小写的阿拉伯数字金额转换为中文大写,以便于在发票、合同等正式文档中使用。PowerBuilder 是一种常用的开发工具,但其标准库并未提供直接将小写金额转换为大写金额...

    JavaScript无限位小写金额转换中文大写

    《JavaScript无限位小写金额转换大写金额》说明:1.本程序用JavaScript语言编写。转换方法严格遵照中国人民银行规定的银行支票中关于中文大写填写规范的相关规定(见下面附文),两可之处按简便方法处理。2.输入小写...

    人民币小写金额转大写金额(java版)

    ### 人民币小写金额转大写金额(Java版) #### 概述 本文将详细介绍一个Java程序,该程序用于将小写的人民币金额转换为大写形式。此转换主要用于财务、会计和其他正式场合,在这些场合中,大写金额是标准且必须的...

    C语言成序设计__实现人民币小写金额与大写金额的转换

    人民币的小写金额是使用阿拉伯数字表示的金额,例如1002300.90。大写金额则使用中文数字和单位来表示,例如“壹佰零拾零万贰仟三佰零拾零元玖角零分”。在实现转换时,我们需要将小写金额的每一位数字提取出来,并将...

    c# 将数字转换为大写

    1. 创建一个字典,键为小写中文数字字符串,值为对应的大写中文数字字符串。 2. 实现一个方法,接收一个中文数字字符串作为输入。 3. 对输入字符串的每个字符,查找字典中的对应大写形式。 4. 如果找到,将大写字符...

    小写金额转换成大写金额源代码

    小写金额通常是我们日常见到的阿拉伯数字(1, 2, 3...),而大写金额则是使用中文字符来表示数字,例如壹、贰、叁...这种方式可以避免因手写或打印不清导致的误解。 要实现这个转换,我们可以编写一个函数或者方法...

Global site tag (gtag.js) - Google Analytics