Home  >  Article  >  php教程  >  分享一个数字转换为汉字的函数

分享一个数字转换为汉字的函数

WBOY
WBOYOriginal
2016-06-06 20:07:481239browse

可以实现数字转换为金额汉字或者普通的汉字表示: /** * 数字转换为中文 * @param string|integer|float $num 目标数字 * @param integer $mode 模式[true:金额(默认),false:普通数字表示] * @param boolean $sim 使用小写(默认) * @return string */func

可以实现数字转换为金额汉字或者普通的汉字表示:

/**
 * 数字转换为中文
 * @param  string|integer|float  $num  目标数字
 * @param  integer $mode 模式[true:金额(默认),false:普通数字表示]
 * @param  boolean $sim 使用小写(默认)
 * @return string
 */
function number2chinese($num,$mode = true,$sim = true){
	if(!is_numeric($num)) return '含有非数字非小数点字符!';
	$char    = $sim ? array('零','一','二','三','四','五','六','七','八','九')
				: array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖');
	$unit    = $sim ? array('','十','百','千','','万','亿','兆')             
				: array('','拾','佰','仟','','萬','億','兆');
	$retval  = $mode ? '元':'点';
	//小数部分
	if(strpos($num, '.')){
		list($num,$dec) = explode('.', $num);
		$dec = strval(round($dec,2));
		if($mode){
			$retval .= "{$char[$dec['0']]}角{$char[$dec['1']]}分";
		}else{
			for($i = 0,$c = strlen($dec);$i 1 and $str[$i]+$str[$i-1] == 0){
				$out[$i] = '';
			}
			if($i%4 == 0){
				$out[$i] .= $unit[4+floor($i/4)];
			}
		}
	}
	$retval = join('',array_reverse($out)) . $retval;
	return $retval;
}
$num = '0123648867.789';
echo $num,'';
//普通数字的汉字表示
echo '普通:',number2chinese($num,false),'';
//金额汉字表示
echo '金额(简体):',number2chinese($num,true),'';
echo '金额(繁体):',number2chinese($num,true,false);
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn