將數值(千億以下)轉換為大寫人民幣
rt:將數值(千億以下)轉換為大寫人民幣.用PHP實現。PHPer 快啊
------解決方案--------------------
http://www.phparticle.net/htmldata/2268/1/
------解決方案--------------------
PHP code
pow(10,12))return "金額必須小於千億"; $re = ''; $arr1 = array('零','壹','貳','三','肆','伍','陸','柒','捌','玖'); $arr2 = array('元','拾','佰','仟','萬','拾','佰','仟','億','拾','佰','仟'); $arr3 = array('角','分','厘','毫'); $pre1 = count($arr2); #單位精確度 precision $pre2 = count($arr3); #小數位精確度 precision $arr = @explode(".",$RMB);#按小數點切割金額 $len1 = @strlen($arr[0]); #整數位長度 $len2 = @strlen($arr[1]); #小數位長度 for($i=0; $i<$len1 && $i<$pre1; $i++) { $bit =$arr[0][$len1-$i-1]; #當前位小寫金額 $cn =$arr1[$bit]; #當前位大寫金額 $unit =$arr2[$i]; #當前位金額單位 #小寫金額為零的情況 if($bit==0) { if(ereg('元|萬|億',$unit))$re=$unit.$re; else $re=$cn.$re; } #小寫金額非零的情況 else { $re=$cn.$unit.$re; } } for($i=0; $i< count($arr3) && $i<$len2; $i++){ $bit =$arr[1][$i]; #當前位小寫金額 $cn =$arr1[$bit]; #當前位大寫金額 $unit =$arr3[$i]; #當前位金額單位 if($bit!=0) $re .=$cn.$unit; elseif($i<2) $re .="零"; } if($Format){#格式化小寫金額 #精確位元。不小於2,不大於最大精確度的小數位元 $gage =min(max(2,$len2),$pre2); $GLOBALS[$Format]=number_format($RMB,$gage, ".", ","); } $re=preg_replace( array("/億萬/", "/(零)$/", "/(零){2,}/"), array("億", "", "零"), $re); #正則替換 if(!$len2)$re.="整"; #當沒有小數位時加上“整” return $re; } //////////////////////////// RMB('11111111'); $money=isset($_GET['money'])?$_GET['money']:""; $RMB=RMB($money,"money"); ?>