数字转RMB大写
/**
* 数字转人民币大写(整数部分)
*
* @author LIXG
* @param integer $number
* @date 2017年2月28日下午3:02:33
*/
public function numToRMB($number = 123456789){
static $cnums=array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖"),
$grees=array("拾","佰","仟","万","拾","佰","仟","亿");
$numberLen = strlen($number);
$numArr = explode(',', trim(strrev(chunk_split(strrev($number), 4, ',')), ','));
$arrlenth = count($numArr);
$ecArr = [];
static $i = 0;
foreach ($numArr as $str){
$strarr = explode(',', trim(chunk_split($str, 1, ','), ','));
$addUnit = FALSE;
$strarrLen = count($strarr);
foreach ($strarr as $v){
if ( end($ecArr) != '零' || $v != '0' ){
$ecArr[$i] = $cnums[$v].(($v!='0' && ($i+1 != $numberLen))?$grees[abs(($numberLen-$i-2)%8)]:'');
if ( $v != '0' )
$addUnit = TRUE;
}
$i++;
}
$numArrLen = $arrlenth--;
if ( $addUnit === TRUE ){
if ( end($ecArr) == '零' )
array_pop($ecArr);
$ecArr[] = $grees[($numArrLen-1)*4-1]?$grees[($numArrLen-1)*4-1]:$grees[($numArrLen-1)*4-8-1];
}
}
return implode('', $ecArr).'圆';
}
/**
* 小数部分
*
* @author LIXG
* @date 2017年3月1日下午4:10:58
*/
public function fractionalPart($decimal){
static $cnums = array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖"),
$cnyunits = array("角","分");
if($decimal == 0)
return '';
// 保留两位小数
list($first, $second) = explode(',', trim(strrev(chunk_split(strrev($decimal), 1, ',')), ','));
return $cnums[$first].'角'.(($second=='0')?'':($cnums[$second].'分'));
}

浙公网安备 33010602011771号