人民币大写转化之各种语言
来源:互联网 发布:淘宝开店铺怎么找货源 编辑:程序博客网 时间:2024/05/21 10:30
网上荡来的 不要鄙视砸门啊
Php代码 //人民币金额转大写程序 PHP版 //CopyRight Bardo QI function numToCny($num){ $capUnit=array('万','亿','万','圆',''); $capDigit=array(2=>array('角','分',''), 4=>array('仟','佰','拾','')); $capNum=array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖'); if ((strpos(strval($num),'.')>16)||(!is_numeric($num))) return ''; $num = sprintf("%019.2f",$num); $CurChr=array('',''); for ($i=0,$ret='',$j=0;$i<5;$i++,$j=$i*4+floor($i/4)){ $nodeNum=substr($num,$j,4); for($k=0,$subret='',$len=strlen($nodeNum);(($k<$len)&&(intval(substr($nodeNum,$k))!=0));$k++){ $CurChr[$k%2] = $capNum[$nodeNum{$k}].(($nodeNum{$k}==0)?'':$capDigit[$len][$k]); if (!(($CurChr[0]==$CurChr[1]) && ($CurChr[$k%2]==$capNum[0]))) if(!(($CurChr[$k%2] == $capNum[0]) && ($subret=='') && ($ret==''))) $subret .= $CurChr[$k%2]; } $subChr = $subret.(($subret=='')?'':$capUnit[$i]); if(!(($subChr == $capNum[0]) && ($ret==''))) $ret .= $subChr; } $ret=($ret=="")?$capNum[0].$capUnit[3]:$ret; return $ret; }
//人民币金额转大写程序 JavaScript版 //CopyRight Bardo QI function numToCny(num){ var capUnit = ['万','亿','万','圆','']; var capDigit = { 2:['角','分',''], 4:['仟','佰','拾','']}; var capNum=['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']; if (((num.toString()).indexOf('.') > 16)||(isNaN(num))) return ''; num = ((Math.round(num*100)).toString()).split('.'); num = (num[0]).substring(0, (num[0]).length-2)+'.'+ (num[0]).substring((num[0]).length-2,(num[0]).length); num =((Math.pow(10,19-num.length)).toString()).substring(1)+num; var i,ret,j,nodeNum,k,subret,len,subChr,CurChr=[]; for (i=0,ret='';i<5;i++,j=i*4+Math.floor(i/4)){ nodeNum=num.substring(j,j+4); for(k=0,subret='',len=nodeNum.length;((k<len) && (parseInt(nodeNum.substring(k),10)!=0));k++){ CurChr[k%2] = capNum[nodeNum.charAt(k)]+((nodeNum.charAt(k)==0)?'':capDigit[len][k]); if (!((CurChr[0]==CurChr[1]) && (CurChr[0]==capNum[0]))) if(!((CurChr[k%2] == capNum[0]) && (subret=='') && (ret==''))) subret += CurChr[k%2]; } subChr = subret + ((subret=='')?'':capUnit[i]); if(!((subChr == capNum[0]) && (ret==''))) ret += subChr; } ret=(ret=='')? capNum[0]+capUnit[3]: ret; return ret; }
'人民币金额转大写程序 Asp、 Vb6版 'CopyRight Bardo QI Function numToCny(num) capUnit = Array("万", "亿", "万", "圆", "") capDigit = Array(Array(), Array(), Array("角", "分", ""), Array(), Array("仟", "佰", "拾", "")) capNum = Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖") If (((InStr(1, num, ".") > 16) Or (Not IsNumeric(num)))) Then numToCny = "" Exit Function End If num = FormatNumber(num, 2, , , 0) num = Mid(CStr(10 ^ (19 - Len(num))), 2) + num CurChr = Array("", "") ret = "" For i = 0 To 4 j = i * 4 + Int(i / 4) + 1 nodeNum = Mid(num, j, 4) slen = Len(nodeNum) subret = "" For k = 1 To slen If Int(Mid(nodeNum, k)) = 0 Then Exit For End If CurChr(k Mod 2) = capNum(Int(Mid(nodeNum, k, 1))) + IIf(Int(Mid(nodeNum, k, 1)) = 0, "", capDigit(slen)(k - 1)) If (Not ((CurChr(0) = CurChr(1)) And (CurChr(0) = capNum(0)))) Then If (Not ((CurChr(k Mod 2) = capNum(0)) And (subret = "") And (ret = ""))) Then subret = subret + CurChr(k Mod 2) End If End If Next subChr = subret + IIf((subret = ""), "", capUnit(i)) If (Not ((subChr = capNum(0)) And (ret = ""))) Then ret = ret + subChr End If Next ret=Iif((ret=""), capNum(0)+capUnit(3), ret) numToCny = ret End Function
//人民币金额转大写程序 jsp, Java版//CopyRight Bardo QI//警告,因为未装JAVA编译器,所以,这一代码未经测试!import java.util.ArrayList;import java.util.Math.*;import java.lang.*;String numToCny(String num){ String capUnit[] ={"万","亿","万","圆",""}; String capDigit[][] = { {""},{""},{"角","分",""},{""},{"仟","佰","拾",""}}; String capNum[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; if (num.indexOf(".") > 16) return "ERROR"; double dnum=Double.parseDouble(num); dnum = Math.round(dnum*100)/100; if (Double.isNaN(dnum)) return "ERROR"; String snum = Double.toString(dnum); double pnum = Math.pow(10,19-snum.length()); String psnum = Double.toString(pnum); snum = psnum.substring(1)+snum; String ret,nodeNum,subret,subChr; ArrayList CurChr = new ArrayList(2); int i,j,k,len; for (i=0,ret="";i<5;i++,j=i*4+(int)Math.floor(i/4)){ nodeNum=snum.substring(j,j+4); for(k=0,subret="",len=nodeNum.length();((k<len) && (Integer.parseInt(nodeNum.substring(k))!=0));k++){ CurChr.set(k%2,capNum[Integer.parseInt(nodeNum.substring(k,k+1))]+((nodeNum.substring(k,k+1).equals("0"))?"":capDigit[len][k])); if (!((CurChr.get(0)==CurChr.get(1)) && (CurChr.get(0)==capNum[0]))) if(!((CurChr.get(k%2) == capNum[0]) && (subret.equals("")) && (ret.equals("")))) subret += CurChr.get(k%2); } subChr = subret + ((subret.equals(""))?"":capUnit[i]); if(!((subChr == capNum[0]) && (ret.equals("")))) ret += subChr; } ret=(ret.equals(""))? capNum[0]+capUnit[3]: ret; return ret;}
//人民币金额转大写程序VC++版 //CopyRight Bardo QI CString numtoCny(double Num) { char* capUnit[]={"万","亿","万","圆",""}; char* capDigit[5][4]={{""},{""},{"角","分",""},{""},{"仟","佰","拾",""}}; char* capNum[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; CString num,ret="",nodeNum="",subret,subChr,thisChr,lastChr,ch; num.Format("%019.2f",Num); if(num.Find(".")>16) return ret; int i,j,k,len,chn; for (i=0;i<5;i++,j=i*4+int(i/4)){ nodeNum= num.Mid(j,4); subret=""; lastChr=""; for(k=0,len=nodeNum.GetLength();((k<len)&&(atoi((LPCTSTR)nodeNum.Mid(k,4-k))!=0));k++){ ch= nodeNum[k]; chn=atoi((LPCTSTR)ch); thisChr = capNum[chn] ; thisChr += (chn==0) ? "" : capDigit[len][k]; if (!((thisChr==lastChr) && (thisChr==capNum[0]))) if(!((thisChr == capNum[0]) && (subret=="") && (ret==""))) subret += thisChr; lastChr=thisChr; } subChr = subret; subChr += (subret=="")?"":capUnit[i]; if(!((subChr == capNum[0]) && (ret==""))) ret += subChr; } (ret=="")?ret.Format("%s%s",capNum[0],capUnit[3]):ret; return ret; }
#人民币金额转大写程序Python版本 #Copyright: zinges at foxmail.com #blog: http://zingers.iteye.com #感谢zinges提供了Python的版本 import math def numtoCny(num): capUnit = ['万','亿','万','圆',''] capDigit = { 2:['角','分',''], 4:['仟','佰','拾','']} capNum=['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'] snum = str('%019.02f') % num if snum.index('.')>16: return '' ret,nodeNum,subret,subChr='','','','' CurChr=['',''] for i in range(5): j=int(i*4+math.floor(i/4)) subret='' nodeNum=snum[j:j+4] lens=len(nodeNum) for k in range(lens): if int(nodeNum[k:])==0: continue CurChr[k%2] = capNum[int(nodeNum[k:k+1])] if nodeNum[k:k+1] != '0': CurChr[k%2] += capDigit[lens][k] if not ((CurChr[0]==CurChr[1]) and (CurChr[0]==capNum[0])): if not((CurChr[k%2] == capNum[0]) and (subret=='') and (ret=='')): subret += CurChr[k%2] subChr = [subret,subret+capUnit[i]][subret!=''] if not ((subChr == capNum[0]) and (ret=='')): ret += subChr return [ret,capNum[0]+capUnit[3]][ret=='']
//人民币金额转大写程序 ActionScript 3.0版 //CopyRight Bardo QI public function numToCny(num:String):String{ var capUnit:Array =['万','亿','万','圆','']; var capDigit:Array = [[],[], ['角','分',''],[], ['仟','佰','拾','']]; var capNum:Array=['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']; if ((num.indexOf('.') > 16)||(isNaN(parseFloat(num)))) return ''; var dnum:Number = Math.round(parseFloat(num)*100)/100; num = dnum.toString(); var inum:Number = Math.pow(10,19-num.length); var pnum:String = inum.toString(); num = pnum.substring(1)+num; var i:Number,ret:String,j:Number,nodeNum:String,k:Number,subret:String,len:Number,subChr:String,CurChr:Array=['','']; for (i=0,ret='';i<5;i++,j=i*4+Math.floor(i/4)){ nodeNum=num.substring(j,j+4); for(k=0,subret='',len=nodeNum.length;((k<len) && (parseInt(nodeNum.substring(k))!=0));k++){ CurChr[k%2] = capNum[parseInt(nodeNum.charAt(k))]+((nodeNum.charAt(k)=='0')?'':capDigit[len][k]); if (!((CurChr[0]==CurChr[1]) && (CurChr[0]==capNum[0]))) if(!((CurChr[k%2] == capNum[0]) && (subret=='') && (ret==''))) subret += CurChr[k%2]; } subChr = subret + ((subret=='')?'':capUnit[i]); if(!((subChr == capNum[0]) && (ret==''))) ret += subChr; } ret=(ret=='')? capNum[0]+capUnit[3]: ret; return ret; }
'人民币金额转大写程序 VB.Net版 'CopyRight Bardo QI Function numToCny(ByVal num) Dim capUnit() As String = {"万", "亿", "万", "圆", ""} Dim capDigit(,) As String = {{"", "", "", ""}, {"", "", "", ""}, {"角", "分", "", ""}, {"", "", "", ""}, {"仟", "佰", "拾", ""}} Dim capNum() As String = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"} If (((InStr(1, num, ".") > 16) Or (Not IsNumeric(num)))) Then numToCny = "" Exit Function End If num = FormatNumber(num, 2, , , 0) num = Mid(CStr(10 ^ (19 - Len(num))), 2) + num Dim CurChr() = {"", ""}, nodeNum As String, subret As String, subChr As String, slen As Integer, i As Integer, j As Integer, k As Integer Dim ret As String = "" For i = 0 To 4 j = i * 4 + Int(i / 4) + 1 nodeNum = Mid(num, j, 4) slen = Len(nodeNum) subret = "" For k = 1 To slen If Int(Mid(nodeNum, k)) = 0 Then Exit For End If CurChr(k Mod 2) = capNum(Int(Mid(nodeNum, k, 1))) + IIf(Int(Mid(nodeNum, k, 1)) = 0, "", capDigit(slen, k - 1)) If (Not ((CurChr(0) = CurChr(1)) And (CurChr(0) = capNum(0)))) Then If (Not ((CurChr(k Mod 2) = capNum(0)) And (subret = "") And (ret = ""))) Then subret = subret + CurChr(k Mod 2) End If End If Next subChr = subret + IIf((subret = ""), "", capUnit(i)) If (Not ((subChr = capNum(0)) And (ret = ""))) Then ret = ret + subChr End If Next numToCny = IIf((ret = ""), capNum(0) + capUnit(3), ret) End Function
//人民币金额转大写程序C#版 //CopyRight Bardo QI string numtoCny(decimal Num){ string[] capUnit = {"万","亿","万","圆",""}; string[,] capDigit = { { "", "", "", "" }, { "", "", "", "" }, { "角", "分", "", "" }, { "", "", "", "" }, { "仟", "佰", "拾", "" } }; string[] capNum = {"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"}; string num, ret = "", nodeNum = "", subret, subChr; string[] thisChr={"",""}; num = String.Format("{0:0000000000000000.00}",Num); if(num.IndexOf(".")>16) return ret; int i,j,k,len,ch; for (i=0,j=0;i<5;i++,j=i*4 + int.Parse(Math.Floor((double)i/4).ToString()) ){ len = (j < 17) ? 4 : 2; nodeNum = num.Substring(j, len); subret=""; for (k = 0; ((k < len) && (int.Parse(nodeNum.Substring(k, len - k)) != 0)); k++){ ch = int.Parse(nodeNum.Substring(k, 1)); thisChr[i%2] = capNum[ch]; thisChr[i % 2] += (ch == 0) ? "" : capDigit[len,k]; if (!((thisChr[0] == thisChr[1]) && (thisChr[i % 2] == capNum[0]))) if (!((thisChr[i % 2] == capNum[0]) && (subret == "") && (ret == ""))) subret += thisChr[i % 2]; } subChr = subret; subChr += (subret=="")?"":capUnit[i]; if(!((subChr == capNum[0]) && (ret==""))) ret += subChr; } ret=(ret=="")? capNum[0]+capUnit[3]:ret; return ret; } }
非常给力,果断收藏了。嘎嘎
0 0
- 人民币大写转化之各种语言
- 123转化大写人民币
- 人民币大写转化函数C#
- 人民币大写转化函数C#
- 人民币大写转化函数C#
- 人民币大写转化函数C#
- 数字转化为人民币大写
- 把人民币转化成大写
- 将人民币转化为大写
- 人民币大写转化函数(C#版)
- JAVA的人民币大写(金额)转化
- 将阿拉伯数字转化为人民币的大写
- 人民币大写转化函数(C#版)
- 将小写数字转化为大写人民币
- JAVA的人民币大写(金额)转化
- 将数字字符串人民币转化成大写字符串人民币
- 蓝桥杯之《人民币金额大写》
- 人民币大写金额转换 c语言
- 第7周作业1——背包问题
- 九余数定理——hdu_1163 Eddy's digital Roots
- 描述符重定向
- 笔记本怎么设置WIfi热点
- make......
- 人民币大写转化之各种语言
- 二叉查找树转换为双向链表
- libstdc++/include/new: No such file or directory
- Longest common subsequence / substring
- iPhone 4S 听筒的拆解与安装
- Beyond
- 屏幕广播的实现(三)
- 二维“数组”转换成二维“指针”
- fzu 1263 (栈的应用)