- 浏览: 382283 次
- 性别:
- 来自: 上海
-
文章分类
最新评论
-
周仁明:
xin911 写道周仁明 写道js的借用了,谢谢!java的版 ...
人民币金额数字转中文大写程序多种编程语言汇总2011版 -
xin911:
周仁明 写道js的借用了,谢谢!java的版本必然是不对的问题 ...
人民币金额数字转中文大写程序多种编程语言汇总2011版 -
周仁明:
js的借用了,谢谢!java的版本必然是不对的问题很多。
人民币金额数字转中文大写程序多种编程语言汇总2011版 -
zhangzhj85:
...
公开几个移动互联产品设计大神的观点 -
white_crucifix:
嗯,不过网络诊断功能能帮上忙的次数的确微乎其微
戏说windows 7 中的优秀设计
这里目前给大家提供的是PHP,JSP(JAVA),ASP(VB6),JAVASCRIPT,VC++,Python,ActionScript3.0, VB.Net,C# 等语言的版本.
网上搜索一下:你要的编程语言名称,再加上“人民币 数字 金额 转大写 汉字”,结果就会出来异常多的结果。所以,这种代码已相当烂了,到处都有。什么语言的都有。到处都有的代码,你为什么要重造轮子?没办法呀,我实在不能用那些无法维护的代码。尽管我的代码写得不算是最好的,但总要有一个象样的代码,我才安心!!
很多人都在讲程序高手。其实高手就在于相当简单的基本功上。比如,你的for循环用得如何?你的if用得怎样。当然,早年用VB的人,if用得肯定好。因为,VB没有continue,你不得不反向思维,写好if。
其实高手还有另一个关键点,那就是程序如何写。所有高手都擅长预处理数据,从而使得程序不会跟着数据跑。在这一前提下,任何一个问题,众多高手的写出来的代码流程均是相似的。而普通程序员则会千差万别。
比如现在网上的人民币金额转大写程序,任何语言,你都不能找到一个满意的版本。也有人甚至说,这个算法,绝对不可能在30行以内完成(指PHP)。
好久不写其它编程语言的代码了,接下来,会用到这样的程序。所以,作为一个伪高手,技术不是怎样的我,写出一个版本,PHP代码竟然只有21行。所以,决定分享给大家。觉得给初学者指一个路,看看if, for该当如何使用。(从PHP说,这个代码中如果if用不好,则会多出几个continue和至少一个break。另外,如果不注意使用数学方法,与预定义变量的配置,还会多出好几个if,当然,这并不算优秀的代码,仅供参考!!)
其实,如果你仔细看一下代码,你就会发现,经过数据预处理后,将算法中有if全部集中起来了,并且能将其嵌入到循环中了。由此可见,先将数据处理成程序方便处理的格式,程序中就会少掉大量的代码。预处理数据后,程序不会跟着数据走。这一点在我公开课《数据处理算法设计要点》(链接中的网址是首发网址,百度文库未经许可,属于抄袭。当然,这个盗版人稍有一点人性,不象《PHP程序员必须掌握的PHP面向对象的特有的特性》盗版人,抹去了所有原作者去出处信息!!)中已经讲过。有心人可以在网上搜索到。所以,不多讲了。
另外有一点,我们可以看出,PHP的代码行数是最少的。用好了PHP的人都了解,远比JAVA精简多了。比如,本函数中的数据预处理,PHP因为拥有sprintf,因而仅需一行代码。但JAVA却绕了相当大的弯子。从这一点来讲,PHP是造就优秀程序员的语言。而JAVA则是让傻瓜使用的语言。VB就更不用说了,完全是面对门外汉的。(个人看法,不用当真。当真你就输了!)
其次,很多版本的,真正按汉语习惯,或者说真正按数字读法完全正确的写出的并不多。比如,302000,应当是叁拾万贰仟。但却有叁拾万零贰仟的版本。而300200应当是叁拾万零贰佰,却也有叁拾万贰佰的版本。所以,写代码的人,首先对汉语数字正确的读法都不清楚。
这个函数是支持16位整数的。但是对于万亿,仍用的是万,因为,无法用兆,兆在当今是10的6次方,不再是12次方了。如果你不习惯,直接将第一个万改成万亿即可。
要注意的是,32位机中,大数字会溢出,对于PHP,直接传入字串形式的测试。
当然,目前还缺象C++, Ruby的版本。如果有有兴趣完成,别忘了发给我,我会加进来,当然,程序中一定是暑你的大名了。
网上代码,搜索出来的是什么样子?看一看好心人保存下来的我在2002年完成的代码大家可能就了解了。虽然,函数使用,流程处理的功夫上已不低,但还没有懂得,如何进行预处理。程序是完全跟着数据走的。那时,在大家看来是最好的VB代码了。可现在我看,仍然是很差的代码,因为,同下面现在写的代码比一下,行数更少。程序逻辑更加清析。2002年的代码的网址如下:
http://topic.csdn.net/t/20020802/11/918115.html
以下是各编程语言的代码。(注:Python代码于2011年4月17日最后修改)
版权声明:
Copyright (c) 2010 Bardo QI
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
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; } }
版权声明:本文是作者版权文章,未经作者以及javaeye的许可不得转载!特别声明:禁止百度文库恶意转载的剽窃行径!!
更新提示:Java版的代码己经过TextPad编译通过。
评论
JS的有错误。
0元的时候,会出现undefined角。1分的时候也有错误,undefined角1分。
自己加了判断了
JS的有错误。
0元的时候,会出现undefined角。1分的时候也有错误,undefined角1分。
你的建议不错:按你要求,我重写了,
http://bardo.iteye.com/blog/1739615
请您指正!


ret=(ret=="")? capNum[0]+capUnit[3]:ret;
String 不能直接等号判断的
"".eq ret
嗯,哈哈, 无聊也想写一个Python版时,再看了看中文数字读法,发现杯具了

唉,我的半调子代码,
from operator import add from itertools import cycle,groupby units=["拾","佰","仟","万","拾","佰","仟","亿"] nums=["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"] splitUnit=["万","亿"] def cny(numStr): a=zip(numStr[::-1][1:],cycle(units)) a=reduce(add,[list(v) if i!='0' else reduce(tozero,list(v),[]) for i,v in groupby(a,lambda t:t[0])]) return "".join(map(lambda t:"%s%s"%(t[0] and nums[int(t[0])],t[1]),a[::-1]+[(numStr[-1],'')])) def tozero(acc,t): if t[1] in splitUnit: acc.append(('',t[1])) elif len(acc)==0: acc.append(('0','')) return acc
然后,唉,中文货币我还真不知道怎么读,真纠结啊
一=1x10^0
十=1x10^1
百=1x10^2
千=1x10^3
万=1x10^4
亿=1x10^8
兆=1x10^12
京=1x10^16
垓=1x10^20
秭=1x10^24
穰=1x10^28
沟=1x10^32
涧=1x10^36
正=1x10^40
载=1x10^44
极=1x10^48
据说下面的是新标准
千以上的数级规定为: 兆(10^6) 吉(10^9) 太(10^12) 拍(10^15) 艾(10^18)

123.01 = 壹佰贰拾叁圆零壹分
123.1 = 壹拾贰圆undefined角壹分
123456 = 壹佰贰拾叁圆伍角陆分
120006080.11 = 壹亿贰仟万陆仟圆壹角壹分
全错!
非常感谢你找出JS版本中的这两个BUG。前者是JS数字格式的问题,它会默认去掉小数点后面的尾数的0。如果全是0,则小数点也去掉了。
最后一个错,则是因为parseInt少传了一个参数,对于8,返回的是0!
均已更正,谢谢
123.01 = 壹佰贰拾叁圆零壹分
123.1 = 壹拾贰圆undefined角壹分
123456 = 壹佰贰拾叁圆伍角陆分
120006080.11 = 壹亿贰仟万陆仟圆壹角壹分
全错!
贰仟叁佰肆拾伍亿陆仟柒佰捌拾玖万零壹佰贰拾叁圆伍角陆分
程序没有问题的,问题是你的机器,32位机上,怎么能运行64位的数字呢?
Math.round(num*100)/100 这一步就溢出了吧?
贰仟叁佰肆拾伍亿陆仟柒佰捌拾玖万零壹佰贰拾叁圆伍角陆分
感谢提醒,已更改。
发表评论
-
给函数起个好名字,让你代码高大上
2020-08-02 14:29 789程序员最痛苦的事情之一,就是怎么样给函数起个名字。如果你的英 ... -
windows7 在此处以管理员身份打开命令行窗口
2015-01-25 22:21 1598在widows 7 及更高版本的window ... -
公开几个移动互联产品设计大神的观点
2014-01-09 10:35 1544以下是源于一些优秀产品经理的观点,或称为他们的绝活。我现在隐 ... -
戏说windows 7 中的优秀设计(2)
2014-01-02 14:57 1402前不久,发布了一篇博文《戏说windows 7 中的优秀设 ... -
让WINDOWS系统能够跨网段访问
2013-12-27 00:34 4559自从电信给我们家宽带换成了光纤,我们家的无线路由器IP地址就 ... -
戏说windows 7 中的优秀设计
2013-11-26 00:20 2418早就听说windows 7中的优秀设计 ... -
企业应用移动APP偷工减料的秘密
2012-05-23 22:38 2583偷工减料, ... -
子在川上曰:相煎何太急
2011-05-20 23:49 1176“子在川上 ... -
中国团购没有眼泪
2011-05-08 02:36 14712010年3月, ... -
闲话电信DNS截持技术
2011-04-04 23:48 1569如果你有心 ... -
终于把windows live mail卸载了
2011-03-30 22:17 7607windows live mail与用了10多 ... -
刚刚把GOOGLE浏览器彻底卸载了,发誓永不安装!!!!
2010-12-27 22:08 1487我一向反对软件封杀用户知情权。百度搜索伴侣,3721, ... -
计算机的加电启动过程
2010-11-26 18:10 1202打开电源启动机器 ... -
一个最简单的面试方法
2010-11-18 22:00 1345以下几道面试题,绝对准。 一、你计算机一般用什么杀毒软 ... -
汽车对冰激凌过敏与CMS系统新记录BUG
2010-10-31 22:06 1424汽车对冰激凌过敏一天 ... -
设计模式应用浅述(二)
2010-08-27 20:09 1071二、结构型模式——类 ... -
软件架构师必须掌握的WEB应用的软件架构技术
2010-08-26 21:01 1984近年来,当 ... -
机器翻译的误区(二)
2010-08-26 13:42 1311也许你对这 ... -
MVC应当什么样子
2010-08-26 01:02 1494MVC应当什么样子?此问题好怪。是的。JAVA ... -
机器翻译的误区(一)
2010-08-26 00:36 1570这个话题说起来很大。并且好象这绝对是专家们干的事情。并 ...
相关推荐
将金额数字转成中文大写 此函数将数字金额转换为中文大写形式,例如将“12345.67”转换为“壹万贰仟叁佰肆拾伍元陆角柒分”。在财务报告和正式文件中,这种转换是必须的。 #### 8. 计算某种税金 类似于个人所得...
【数字转英文】 将选中区域(默认)或已使用区域存储格的金额数字转换成英文格式显示的表达字符串,为三资企业制作客户外汇付款通知书的理想工具。 【文本转EXCEL】 将文本文件按指定的分隔符号分隔一次性导入到...
【数字转英文】 将选中区域(默认)或已使用区域存储格的金额数字转换成英文格式显示的表达字符串,为三资企业制作客户外汇付款通知书的理想工具。 【文本转EXCEL】 将文本文件按指定的分隔符号分隔一次性导入到...
稳压罐sw16_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
内容概要:本文详细介绍了利用递推最小二乘法(RLS)进行永磁同步电机参数辨识的方法及其MATLAB仿真过程。首先解释了RLS算法的优势,如不需要概率模型、计算量适中以及适用于嵌入式系统的实时参数更新。接着展示了将电机电压方程转换为标准形式Y=φθ的具体步骤,并提供了核心的RLS迭代代码。文中还讨论了仿真过程中的一些关键技术细节,如遗忘因子的选择、协方差矩阵的初始化和更新方式、电流信号的处理方法等。最终给出了仿真结果,显示电阻和电感的辨识误差分别达到了0.08%和0.12%,并指出了实际应用中需要注意的数据同步和数值稳定性问题。 适合人群:从事电机控制研究的技术人员、研究生及以上学历的学生。 使用场景及目标:①帮助研究人员理解和掌握RLS算法在电机参数辨识中的应用;②提供详细的仿真代码和配置建议,便于快速搭建实验环境;③指导如何优化算法性能,提高参数辨识精度。 其他说明:本文不仅涵盖了理论推导,还包括了大量的实践经验分享和技术细节探讨,有助于读者全面理解RLS算法的实际应用。同时,文中提到的仿真方案可以方便地移植到DSP平台,进一步扩展了其实用价值。
零起点Python大数据与量化交易
管道清污机器人sw16可编辑_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
电子仿真教程,从基础到精通,每个压缩包15篇教程,每篇教程5000字以上。
电子仿真教程,从基础到精通,每个压缩包15篇教程,每篇教程5000字以上。
1、文件说明: Centos8操作系统thai-scalable-garuda-fonts-0.6.5-1.el8.rpm以及相关依赖,全打包为一个tar.gz压缩包 2、安装指令: #Step1、解压 tar -zxvf thai-scalable-garuda-fonts-0.6.5-1.el8.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm
内容概要:本文详细介绍了利用ABAQUS进行滑坡和沉降对埋地管道影响的有限元分析方法。主要内容涵盖了几何建模、材料属性定义、接触设置、边界条件与加载等方面的技术细节。通过具体的Python脚本示例展示了如何构建模型,并深入探讨了滑坡和沉降条件下管道的应力、应变分布及其潜在破坏机制。此外,还分享了一些实战经验和优化技巧,如材料模型选择、接触条件设置、边界条件处理等,强调了这些因素对结果准确性的重要影响。 适合人群:从事地下管道工程设计、施工及维护的专业技术人员,尤其是那些希望深入了解滑坡和沉降对管道影响的研究人员和技术专家。 使用场景及目标:适用于评估和预测滑坡和沉降对埋地管道造成的力学响应,帮助工程师们更好地理解和应对复杂的地质灾害环境,从而提高管道系统的安全性与稳定性。 其他说明:文中提供的Python代码片段仅为示意,具体实施时需结合ABAQUS的实际接口和项目需求进行适当调整。同时,对于大规模模型的计算,建议使用高性能计算资源以确保效率和精度。
Java一天面试突击,迅速掌握Java常见面试题
莲子去壳机设计模型SW10_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip
MFRC-522+RC522+RFID射频+IC卡感应模块
内容概要:《学术研究提示设计 50 招》是一份详尽的指南,旨在帮助研究人员提高学术写作和研究效率。该文档涵盖了从论文撰写、润色、翻译、查重降重、参考文献管理、投稿审稿到文献阅读等多个方面的具体操作指令。每一章节均针对特定任务提供了详细的步骤和注意事项,例如如何撰写标题、摘要、致谢,如何进行英文润色、中英翻译,以及如何优化逻辑结构等。文档还介绍了如何利用AI工具进行文献分析、术语表提取和研究方向探索等内容,为研究者提供了全面的支持。 适合人群:适用于学术研究人员,特别是那些需要撰写、润色和提交学术论文的研究者,包括研究生、博士生及高校教师等。 使用场景及目标:① 提供一系列具体的指令,帮助研究者高效完成论文的各个部分,如撰写标题、摘要、致谢等;② 提供润色和翻译的详细指导,确保论文语言的准确性和专业性;③ 提供查重降重的方法,确保论文的原创性;④ 提供参考文献管理和投稿审稿的指导,帮助研究者顺利发表论文;⑤ 利用AI工具进行文献分析、术语表提取和研究方向探索,提高研究效率。 阅读建议:此资源不仅提供了具体的指令和方法,更重要的是引导研究者如何思考和解决问题。因此,在学习过程中,不仅要关注具体的步骤,还要理解背后的原理和逻辑,结合实际案例进行实践和反思。
项目optionc-20250409
2023年c语言程序设计基本概念考点归纳.doc
电子仿真教程,从基础到精通,每个压缩包15篇教程,每篇教程5000字以上。
内容概要:本文详细介绍了使用Matlab进行模拟和数字滤波器设计的方法,涵盖了巴特沃斯、切比雪夫等多种经典滤波器类型。首先讲解了模拟滤波器的设计,如巴特沃斯滤波器的通带平坦性和切比雪夫滤波器的通带波纹特性,并提供了具体的代码示例。接着讨论了数字滤波器的设计,包括IIR滤波器的递归特性和FIR滤波器的线性相位特性,同样附有详细的代码实现。文中还特别强调了不同类型滤波器之间的转换方法以及设计过程中常见的注意事项,如频率归一化、阶数选择等。最后推荐了一些实用的Matlab工具,如fvtool和FDATool,帮助用户更直观地理解和调试滤波器设计。 适合人群:具有一定信号处理基础和技术背景的研究人员、工程师及学生。 使用场景及目标:适用于需要进行滤波器设计的实际工程应用,如通信系统、音频处理等领域。目标是让读者掌握滤波器设计的基本原理和具体实现方法,能够独立完成滤波器的设计和调试。 其他说明:文章不仅提供了理论知识,还通过大量实例代码帮助读者更好地理解和应用所学内容。建议读者在实践中多尝试不同的参数配置,以加深对滤波器特性的理解。
饲料干燥装置sw16_三维3D设计图纸_包括零件图_机械3D图可修改打包下载_三维3D设计图纸_包括零件图_机械3D图可修改打包下载.zip