当前位置:  技术问答>java相关

求小写金额转换成大写金额的函数

    来源: 互联网  发布时间:2015-09-05

    本文导语:  不限一个,谁的method的写得最好,那么我给他的分就最多。 如果答案较多,本人还可以再另外开新帖给分。 | 我倒是写了一个java吧的转换,不过代码现在不在这,如果需要可以给我 邮箱来信ycyu@censoft.co...

不限一个,谁的method的写得最好,那么我给他的分就最多。
如果答案较多,本人还可以再另外开新帖给分。

|
我倒是写了一个java吧的转换,不过代码现在不在这,如果需要可以给我
邮箱来信ycyu@censoft.com.cn.晚上给你发

|
绝对原创 以前也在这里贴过!
 public static String numtochinese(String input){
   String s1="零壹贰叁肆伍陆柒捌玖";
   String s4="分角整元拾佰仟万拾佰仟亿拾佰仟";
   String temp="";
   String result="";
   if (input==null) return "输入字串不是数字串只能包括以下字符('0'~'9','.'),输入字串最大只能精确到仟亿,小数点只能两位!";
   temp=input.trim();
   float f;
   try{
       f=Float.parseFloat(temp);

   }catch(Exception e){return "输入字串不是数字串只能包括以下字符('0'~'9','.'),输入字串最大只能精确到仟亿,小数点只能两位!";}
   int len=0;
   if (temp.indexOf(".")==-1) len=temp.length();
   else len=temp.indexOf(".");
   if(len>s4.length()-3) return("输入字串最大只能精确到仟亿,小数点只能两位!");
   int n1,n2=0;
   String num="";
   String unit="";

   for(int i=0;ilen+2){break;}
    if(i==len) {continue;}
    n1=Integer.parseInt(String.valueOf(temp.charAt(i)));
    num=s1.substring(n1,n1+1);
    n1=len-i+2;
    unit=s4.substring(n1,n1+1);
    result=result.concat(num).concat(unit);
   }
   if ((len==temp.length())||(len==temp.length()-1)) result=result.concat("整");
   if (len==temp.length()-2) result=result.concat("零分");
   return result;
 }

|
javascript:
function ChangeToBig(value)
{
var intFen,i;
var strArr,strCheck,strFen,strDW,strNum,strBig,strNow;

if(trim(value)=="")   //数据为空时返回"零"
return "零";
if (isNaN(value))   //数据非法时提示,并返回空串
{
strErr = "数据"+value+"非法!"
alert(strErr);
return "";
}
strCheck = value+".";
strArr = strCheck.split(".");
strCheck = strArr[0];
if(strCheck.length>12)   //数据大于等于一万亿时提示无法处理
{
strErr = "数据"+value+"过大,无法处理!"
alert(strErr);
return "";
}
try
{
i = 0;
strBig = "";
intFen = value*100;          //转换为以分为单位的数值
strFen = intFen.toString();
strArr = strFen.split(".");
strFen = strArr[0];
intFen = strFen.length;      //获取长度
strArr = strFen.split(""); //将各个数值分解到数组内
while(intFen!=0)   //分解并转换
{
i = i+1;
switch(i)              //选择单位
{
case 1:strDW = "分";break;
case 2:strDW = "角";break;
case 3:strDW = "元";break;
case 4:strDW = "拾";break;
case 5:strDW = "佰";break;
case 6:strDW = "仟";break;
case 7:strDW = "万";break;
case 8:strDW = "拾";break;
case 9:strDW = "佰";break;
case 10:strDW = "仟";break;
case 11:strDW = "亿";break;
case 12:strDW = "拾";break;
case 13:strDW = "佰";break;
case 14:strDW = "仟";break;
}
switch (strArr[intFen-1])              //选择数字
{
case "1":strNum = "壹";break;
case "2":strNum = "贰";break;
case "3":strNum = "叁";break;
case "4":strNum = "肆";break;
case "5":strNum = "伍";break;
case "6":strNum = "陆";break;
case "7":strNum = "柒";break;
case "8":strNum = "捌";break;
case "9":strNum = "玖";break;
case "0":strNum = "零";break;
}

//处理特殊情况
strNow = strBig.split("");
//分为零时的情况
if((i==1)&&(strArr[intFen-1]=="0"))
strBig = "整";
//角为零时的情况
else if((i==2)&&(strArr[intFen-1]=="0"))
{    //角分同时为零时的情况
if(strBig!="整")
strBig = "零"+strBig;
}
//元为零的情况
else if((i==3)&&(strArr[intFen-1]=="0"))
strBig = "元"+strBig;
//拾-仟中一位为零且其前一位(元以上)不为零的情况时补零
else if((i3)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="元"))
strBig = "零"+strBig;
//拾-仟中一位为零且其前一位(元以上)也为零的情况时跨过
else if((i3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
{} 
//拾-仟中一位为零且其前一位是元且为零的情况时跨过
else if((i3)&&(strArr[intFen-1]=="0")&&(strNow[0]=="元"))
{}
//当万为零时必须补上万字
else if((i==7)&&(strArr[intFen-1]=="0"))
strBig ="万"+strBig;
//拾万-仟万中一位为零且其前一位(万以上)不为零的情况时补零
else if((i7)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="万"))
strBig = "零"+strBig;
//拾万-仟万中一位为零且其前一位(万以上)也为零的情况时跨过
else if((i7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="万"))
{}
//拾万-仟万中一位为零且其前一位为万位且为零的情况时跨过
else if((i7)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
{}
//万位为零且存在仟位和十万以上时,在万仟间补零
else if((i8)&&(strArr[intFen-1]!="0")&&(strNow[0]=="万")&&(strNow[2]=="仟"))
strBig = strNum+strDW+"万零"+strBig.substring(1,strBig.length);
//单独处理亿位
else if(i==11)
{
//亿位为零且万全为零存在仟位时,去掉万补为零
if((strArr[intFen-1]=="0")&&(strNow[0]=="万")&&(strNow[2]=="仟"))
strBig ="亿"+"零"+strBig.substring(1,strBig.length);
//亿位为零且万全为零不存在仟位时,去掉万
else if((strArr[intFen-1]=="0")&&(strNow[0]=="万")&&(strNow[2]!="仟"))
strBig ="亿"+strBig.substring(1,strBig.length);
//亿位不为零且万全为零存在仟位时,去掉万补为零
else if((strNow[0]=="万")&&(strNow[2]=="仟"))
strBig = strNum+strDW+"零"+strBig.substring(1,strBig.length);
//亿位不为零且万全为零不存在仟位时,去掉万
else if((strNow[0]=="万")&&(strNow[2]!="仟"))
strBig = strNum+strDW+strBig.substring(1,strBig.length);
//其他正常情况
else
strBig = strNum+strDW+strBig;
}
//拾亿-仟亿中一位为零且其前一位(亿以上)不为零的情况时补零
else if((i11)&&(strArr[intFen-1]=="0")&&(strNow[0]!="零")&&(strNow[0]!="亿"))
strBig = "零"+strBig;
//拾亿-仟亿中一位为零且其前一位(亿以上)也为零的情况时跨过
else if((i11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="亿"))
{}
//拾亿-仟亿中一位为零且其前一位为亿位且为零的情况时跨过
else if((i11)&&(strArr[intFen-1]=="0")&&(strNow[0]=="零"))
{}
//亿位为零且不存在仟万位和十亿以上时去掉上次写入的零
else if((i11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="亿")&&(strNow[3]!="仟"))
strBig = strNum+strDW+strBig.substring(1,strBig.length);
//亿位为零且存在仟万位和十亿以上时,在亿仟万间补零
else if((i11)&&(strArr[intFen-1]!="0")&&(strNow[0]=="零")&&(strNow[1]=="亿")&&(strNow[3]=="仟"))
strBig = strNum+strDW+"亿零"+strBig.substring(2,strBig.length);
else
strBig = strNum+strDW+strBig;
strFen = strFen.substring(0,intFen-1);
intFen = strFen.length;
strArr = strFen.split("");
}
return strBig;
}catch(err){
return "";      //若失败则返回原值
}
}

|
2:






转换大写金额

INPUT { BORDER-RIGHT: #c0d3dc 1px solid; BORDER-TOP: #c0d3dc 1px solid; BORDER-LEFT: #c0d3dc 1px solid; BORDER-BOTTOM: #c0d3dc 1px solid; font-family: verdana; HEIGHT: 19px}
BODY {font-family:arial,helvetica,Tahoma; font-size: 9pt; color:'094A82'}




            
dim hj,hji
sub document_onkeypress()
    if window.event.srcelement.id="num" and window.event.keycode="13" then
   call retu_cn()
end if
end sub
sub window_onload()
document.fmSubmit.t1.focus()
end sub
SUB retu_cn()
dim n,m_hj,s,ch,ch2,ch3,num
num=Replace(trim(document.fmSubmit.t1.value),",","",1,-1,1)
if num="" then
   MsgBox "您还没有输入金额!"
   document.fmSubmit.t1.focus()
   exit sub
End If
if IsNumeric(num)=False then
   MsgBox "您输入的不是金额!"
   document.fmSubmit.t1.focus()
   exit sub
End If
n=FormatNumber(num,2,-1)
num=n
n=Replace(n,",","",1,-1,1)
If len(n)>15 Then
   MsgBox "金额必须小于千亿!"
   document.fmSubmit.t1.focus()
   exit sub
End If
hj=space(0)
s="840"
ch="壹贰叁肆伍陆柒捌玖"
ch2="仟佰拾  "
ch3="亿万元"
for x=1 to 3
    m=cstr(int(n/10^FormatNumber(mid(s,x,1),0,-1)))
    m=space(4-len(m))+m
    m_hj=space(0)
    if m"   0" then
       for y=1 to 4
           if mid(m,y,1)space(1) and mid(m,y,1)"0" then
              m_hj=trim(m_hj+mid(ch,FormatNumber(mid(m,y,1),0,-1),1)+mid(ch2,y,1))
           else
              if mid(m,y,1)=space(1) or mid(m,y,1)="0" then
                 m_hj=m_hj
                 if right(m_hj,1)="零" then
                    m_hj=m_hj+space(0)
                 else
                    m_hj=m_hj+"零"
                 end if
              else
                 m_hj=m_hj
              end if
           end if   
       next
       if right(m_hj,1)="零" then
          m_hj=mid(m_hj,1,len(m_hj)-1)+mid(ch3,x,1)
          if x=3 then
             m_hj=m_hj+space(0)
          else
             m_hj=m_hj+"零"
          end if
       else
          m_hj=m_hj+mid(ch3,x,1)
       end if 
       if right(hj,1)="零" and mid(m_hj,1,1)="零" then
          hj=hj+mid(m_hj,2,len(m_hj)-1)
       else
          hj=hj+m_hj
       end if
    else 
       if x=3 then
          if right(hj,1)="零" then
             if trim(hj)="零" then
                hj=hj+space(0)
             else
                hj=mid(hj,1,len(hj)-1)+"元"
             end if
          else
             if trim(hj)="零" then
                hj=hj+space(0)
             else
                hj=hj+"元"
             end if
          end if
       else
          if right(hj,1)="零" then
             hj=hj+space(0)
          else
             hj=hj+"零"
          end if   
       end if   
    end if
    if n-int(n)=0 then
       n=n-int(FormatNumber(m,0,-1))*10^int(FormatNumber(mid(s,x,1),0,-1))
    else
       tt=FormatNumber("0."+mid(cstr(n),Instr(1,n,".")+1,2),2)
       n=int(n) 
       n=n-int(FormatNumber(m,0,-1))*10^int(FormatNumber(mid(s,x,1),0,-1))
       n=n+tt
    end if
next
  m=mid(cstr(n),2,2)
  if trim(len(m))2 then
     m=m+"0"
  end if
  if n*100=0 then
     if left(hj,1)="零" then
        if right(hj,1)="零" then
           hj=hj+"元整"
        else
           hj=mid(hj,2,len(hj)-1)+"整"
        end if
     else
        if right(hj,1)="零" then
           hj=mid(hj,1,len(hj)-1)+"整"
        else
           hj=hj+"整"
        end if
     end if
  else
     if right(hj,1)="零" then
        hj=mid(hj,1,len(hj)-1)
     else
        hj=hj
     end if
     if mid(m,1,1)="0" or mid(m,1,1)=space(1) then
        hj=hj+"零"
     else
        hj=hj+mid(ch,FormatNumber(mid(m,1,1),0,-1),1)+"角"
     end if
     if mid(hj,1,1)="零" then
        hj=mid(hj,2,len(hj)-1)
     else
        hj=hj
     end if
     if mid(m,2,1)="0" then
        hj=hj+"整"
     else
        hj=hj+mid(ch,FormatNumber(mid(m,2,1),0,-1),1)+"分"
     end if   
  end if
if num=".00" then
   document.fmSubmit.t1.value="0.00"
else
   document.fmSubmit.t1.value=num
end if   
document.fmSubmit.t2.value=""
hji=1
call read()
End Sub
SUB read()
    MyVar=mid(hj,hji,1)
    document.fmSubmit.t2.value=document.fmSubmit.t2.value+MyVar
    Select Case MyVar
           Case "零"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/0.wav"
           Case "壹"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/1.wav"
           Case "贰"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/2.wav"
           Case "叁"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/3.wav"
           Case "肆"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/4.wav"
           Case "伍"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/5.wav"
           Case "陆"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/6.wav"
           Case "柒"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/7.wav"
           Case "捌"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/8.wav"
           Case "玖"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/9.wav"
           Case "拾"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/10.wav"
           Case "佰"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/b.wav"
           Case "仟"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/q.wav"
           Case "万"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/w.wav"
           Case "亿"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/y.wav"
           Case "元"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/yuan.wav"
           Case "分"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/fen.wav"
           Case "角"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/jiao.wav"
           Case "整"     document.all("bgsoundone").src="http://go.163.com/yjsj/wav/z.wav"
           Case else     hji=0
                         document.all("bgsoundone").src=""
                         exit sub
    End Select
    hji=hji+1
   setTimeout "read",400
End Sub

最完整、最标准的大写金额转换程序,特别是“零”和“整”的转换,最大金额可到仟亿。     


并加入了朗读功能,所以说是最完美的大写金额转换程序!



  

请输入金额:  


  
  大写金额:



|
厉害,写了一堆的代码


|
从jsp界面将java代码调出来即可,难道就不会自个动手一下?

|
wjmmml(笑着悲伤) 

星爷即系星爷,果然非同凡响!

好多高手啊,我也要努力啦!!

|
gz

|
up

    
 
 

您可能感兴趣的文章:

  • 请教,谁有银行金额小写转大写的代码?
  • C# 大小写转换(金额)实例代码
  • 请问在JAVA里将小写字母换为大写字母是用什么函数,大写转成小写又是用哪个函数?
  • 请问变成大写或者变成小写的函数是什么
  • 急!急!急!急!如何将字符串转化为大写,小写。
  • C#中把英文字母转换为大写或小写的方法
  • 装换小写 到 大写
  • winows下的文件名在linux下大写变成小写了
  • docker中文入门学习手册 iis7站长之家
  • 在java中怎么把大写的字母转换成小写呢?(char型的)
  • 请问unix下如何将字符串中的小写字母转换成大写?
  • 我想把大写转换成小写为什么我#include <string.h>后用strlwr()编译提示找不到strlwr()的定义?应该用什么函数呀?
  • 字符串小写变大写
  • 请教!打印字符串,怎么将本来是小写的字符串打印成全部大写的?
  • 写了个将目录下的所有大写文件名改为小写的程序,但是有点问题,大家帮忙看看?谢谢!
  • 用shell脚本和c语言将大写字母转成小写的代码
  • 哪位大侠给个将一个目录下的所有文件名都由大写改成小写的shell或者c程序,121分呀!
  • java的大小写有何规律?(如:System.out.print()中,System的s需大写“S”,其余为小写)
  • 请问各位大侠:如何将小写数字转换成大写?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下copy文件通常又些文件名的大小写会发生变化的,而linux又对大小写敏感,如何解决这一问题
  • 关于LINUX下的大小写问题.着急
  • URL大小写敏感问题
  • qt程序头文件大小写问题
  • linux中makefile大小写问题
  • 修改LINUX内核让系统不区分大小写!
  • jsp后缀名大小写问题(急,在线等!)
  • MySQL修改配置 区分大小写
  • Java的类是否区分大小写?
  • ORACLE_SID在Linux平台或对大小写敏感
  • 文本替换关于大小写
  • 如何使用gcc不对文件名大小写敏感哈,请教各路神仙~
  • 文件名的大小写不能通用吗?
  • MySQL表名不区分大小写的设置方法
  • 为什么输出的结果是小写呢?
  • sql server数据库区分大小写
  • C#文本框只能输入小写字母的代码
  • 不好意思,JSP中String大小写转换函数是什么?
  • C# char类型字符转换大小写的实现代码
  • 转换大小写的函数?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3