`
beyond429
  • 浏览: 95743 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

人民币大小写转

    博客分类:
  • java
阅读更多
String HanDigiStr[] = new String[]{"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
      String HanDiviStr[] = new String[]{"","拾","佰","仟","万","拾","佰","仟","亿",
          "拾","佰","仟","万","拾","佰","仟","亿",
          "拾","佰","仟","万","拾","佰","仟" };

     /**
      * 输入字符串必须正整数,只允许前导空格(必须右对齐),不宜有前导零
      * @param NumStr
      * @return
      *  */
      String PositiveIntegerToHanStr(String NumStr)
      {
       String RMBStr = "";
       boolean lastzero = false;
       boolean hasvalue= false;       // 亿、万进位前有数值标记
       int len,n;
       len = NumStr.length();
       if( len > 15 ) return "数值过大!";
       for(int i=len-1;i>=0;i--) {
        if( NumStr.charAt(len-i-1)==' ' ) continue;
        n = NumStr.charAt(len-i-1) - '0';
        if( n<0 || n>9 ) return "输入含非数字字符!";

        if( n!=0 ) {
         if( lastzero ) RMBStr += HanDigiStr[0];  // 若干零后若跟非零值,只显示一个零
                 // 除了亿万前的零不带到后面
         //if( !( n==1 && (i%4)==1 && (lastzero || i==len-1) ) )    // 如十进位前有零也不发壹音用此行
         if( !( n==1 && (i%4)==1 && i==len-1 ) )     // 十进位处于第一位不发壹音
          RMBStr += HanDigiStr[n];
         RMBStr += HanDiviStr[i];    // 非零值后加进位,个位为空
         hasvalue = true;                                    // 置万进位前有值标记

        }else {
         if( (i%8)==0 || ((i%8)==4 && hasvalue) )  // 亿万之间必须有非零值方显示万
          RMBStr += HanDiviStr[i];   // “亿”或“万”
        }
        if( i%8==0 ) hasvalue = false ;      // 万进位前有值标记逢亿复位
        lastzero = (n==0) && (i%4!=0);
        }

       if( RMBStr.length()==0 ) return HanDigiStr[0];         // 输入空字符或"0",返回"零"
       return RMBStr;
      }

     /**
      *
      * @param val
      * @return
      *  */
     public  String NumToRMBStr(double val)
      {
       String SignStr ="" ;
       String TailStr ="";
       long  fraction, integer;
       int jiao,fen;

       if( val<0 ) {
        val = -val;
        SignStr = "负";
        }
       if(val > 99999999999999.999 || val <-99999999999999.999 ) return "数值位数过大!";
       // 四舍五入到分
       long temp = Math.round(val*100);
       integer = temp/100;
       fraction = temp%100;
       jiao = (int)fraction/10;
       fen = (int)fraction%10;
       if( jiao==0 && fen==0 ) {
        TailStr = "整";
        }
       else {
        TailStr = HanDigiStr[jiao];
        if( jiao!=0 )
         TailStr += "角";
        if( integer==0 && jiao==0 )                // 零元后不写零几分
         TailStr = "";
        if( fen!=0 )
         TailStr += HanDigiStr[fen] + "分";
        }

      // 下一行可用于非正规金融场合,0.03只显示“叁分”而不是“零元叁分”
      //        if( !integer ) return  SignStr+TailStr;

       return SignStr+PositiveIntegerToHanStr(String.valueOf(integer) )+"元"+TailStr;
      }

分享到:
评论

相关推荐

    人民币大小写转换软件

    人民币大小写转换软件 转换标准的银行款项.

    人民币大小写转换

    Java中关于金额小写转换为大写的工具类

    人民币大小写转换,完整带整和零

    在IT行业中,人民币大小写转换是一项常见的编程任务,特别是在财务软件或者银行系统开发中。它涉及到将数字金额从阿拉伯数字形式转换成汉字大写形式,以满足中国金融行业的规范要求,确保金额表述清晰且不易篡改。这...

    人民币大小写转换,整带整和零

    在IT行业中,人民币大小写的转换是一项常见的需求,特别是在财务软件、银行系统以及电子商务等领域。这个话题涉及到中国的货币格式,其中包含整数部分和小数部分的转换规则,以确保财务记录的准确性和合规性。 ...

    C# 人民币大小写转换

    针对“C# 人民币大小写转换”这一主题,我们需要探讨如何利用C#编程语言处理人民币金额的格式化,特别是将其从阿拉伯数字形式转换为中文大写,这在财务单据中是必不可少的,因为中文大写可以避免因数字混淆导致的...

    PowerBuilder人民币大小写转换

    ### PowerBuilder人民币大小写转换知识点解析 在PowerBuilder开发中,进行人民币金额的大小写转换是一种常见的需求。这种转换主要用于财务、会计等系统的输出显示,确保数据格式符合规范且易于理解。下面将详细介绍...

    jsp页面调用applet实现人民币的大小写转换.docx

    该实现方法通过在JSP页面中嵌入一个Applet,使用JavaScript与Applet进行交互,实现实时的人民币大小写转换。 一、JSP页面调用Applet的实现 在JSP页面中,使用 `;charset=gb2312" %&gt;` 指定页面的字符编码为GB2312,...

    人民币大小写转换Java版

    java 人民币大小写转换 利用BufferString和正则表达式做的。。。不到70行的代码,注释相当的详细,当然也写了一个C版本的,要的话,可以留下Email

    人民币大小写转换并语音报数

    【标题】"人民币大小写转换并语音报数"是一个基于Delphi7开发的应用程序,它提供了将人民币金额数字形式转换成大写汉字的功能,并且具备语音播报的能力。这个项目可以帮助财务人员快速准确地处理金融文档,减少人为...

    人民币大小写转换类库

    在IT行业中,人民币大小写转换类库是一种非常实用的工具,尤其在财务软件或与金融相关的系统开发中。这类库通常包含一系列函数或方法,能够将数字金额转换为中文大写,符合中国财务法规的要求。以下是对这个主题的...

    .NET人民币大小写转换

    .NET人民币大小写转换,根据人民币小写转换为人民币大写

    java实现人民币大小写转换

    用java实现的将人民币从数字转换为大写

    人民币大小写转换文档及代码

    在IT行业中,人民币大小写转换是一项常见的需求,特别是在财务软件或者银行系统开发中。这个转换功能主要用于将数字化的人民币金额转换成中文大写的表述形式,以便于财务报表的规范和审计。C#作为.NET框架的主要编程...

    实用最全的人民币大小写转换源码 EBGHRMBCaseConversion.rar

    实用最全的人民币大小写转换源码 源码描述: 一、源码特点 这是一个十分实用的小功能,他可以判断输入的是否是出了数字外的其他字符并主动过滤,转换成大小写后如果是正数会转换成多少元或多少分整。简单实用,...

    人民币大小写转换 vs2008 vc long型

    ### 人民币大小写转换知识点详解 #### 一、问题背景及需求分析 在日常的财务处理、银行系统以及各类正式文档中,经常会遇到将数字金额转换成中文大写的需求。例如,将数字“1003”转换为中文大写的“壹仟零叁圆”。...

    电子表格 人民币大小写转换Excel公式

    ### 人民币大小写转换Excel公式解析 #### 一、引言 在财务处理及正式文件中,经常需要用到人民币金额的大写形式。为了提高工作效率并减少人为错误,掌握一种简便的方法来实现这一转换变得尤为重要。Excel提供了强大...

Global site tag (gtag.js) - Google Analytics