zoukankan      html  css  js  c++  java
  • PHP- 数字转汉字

    //数字转汉字
    function number2Chinese($num, $m = 1)
    {
    	switch($m) {
    		case 0:
    			$CNum = array(
    					array('零','壹','贰','叁','肆','伍','陆','柒','捌','玖'),
    					array('','拾','佰','仟'),
    					array('','萬','億','萬億')
    			);
    			break;
    		default:
    			$CNum = array(
    					array('零','一','二','三','四','五','六','七','八','九'),
    					array('','十','百','千'),
    					array('','万','亿','万亿')
    			);
    			break;
    	}
    	// $cNum = array('零','一','二','三','四','五','六','七','八','九');
    
    	if (is_integer($num)) {
    		$int = (string)$num;
    	} else if (is_numeric($num)) {
    		$num = explode('.', (string)floatval($num));
    		$int = $num[0];
    		$fl  = isset($num[1]) ? $num[1] : FALSE;
    	}
    	// 长度
    	$len = strlen($int);
    	// 中文
    	$chinese = array();
    
    	// 反转的数字
    	$str = strrev($int);
    	for($i = 0; $i<$len; $i+=4 ) {
    		$s = array(0=>$str[$i], 1=>$str[$i+1], 2=>$str[$i+2], 3=>$str[$i+3]);
    		$j = '';
    		// 千位
    		if ($s[3] !== '') {
    			$s[3] = (int) $s[3];
    			if ($s[3] !== 0) {
    				$j .= $CNum[0][$s[3]].$CNum[1][3];
    			} else {
    				if ($s[2] != 0 || $s[1] != 0 || $s[0]!=0) {
    					$j .= $CNum[0][0];
    				}
    			}
    		}
    		// 百位
    		if ($s[2] !== '') {
    			$s[2] = (int) $s[2];
    			if ($s[2] !== 0) {
    				$j .= $CNum[0][$s[2]].$CNum[1][2];
    			} else {
    				if ($s[3]!=0 && ($s[1] != 0 || $s[0]!=0) ) {
    					$j .= $CNum[0][0];
    				}
    			}
    		}
    		// 十位
    		if ($s[1] !== '') {
    			$s[1] = (int) $s[1];
    			if ($s[1] !== 0) {
    				$j .= $CNum[0][$s[1]].$CNum[1][1];
    			} else {
    				if ($s[0]!=0 && $s[2] != 0) {
    					$j .= $CNum[0][$s[1]];
    				}
    			}
    		}
    		// 个位
    		if ($s[0] !== '') {
    			$s[0] = (int) $s[0];
    			if ($s[0] !== 0) {
    				$j .= $CNum[0][$s[0]].$CNum[1][0];
    			} else {
    				// $j .= $CNum[0][0];
    			}
    		}
    		$j.=$CNum[2][$i/4];
    		array_unshift($chinese, $j);
    	}
    	$chs = implode('', $chinese);
    	if ($fl) {
    		$chs .= '点';
    		for($i=0,$j=strlen($fl); $i<$j; $i++) {
    			$t = (int)$fl[$i];
    			$chs.= $str[0][$t];
    		}
    	}
    	return $chs;
    }
    

      

  • 相关阅读:
    nginx预防常见攻击
    nginx性能优化(针对于高并发量仅供参考,并不是方案)
    nginx平滑升级(1.14--1.15)
    LAMP动静分离安装(源码安装)
    洛谷-P1098 字符串的展开
    洛谷-P1086 花生采摘
    洛谷-P1042 乒乓球
    洛谷-P1031 均分纸牌
    洛谷-P1023 税收与补贴问题
    洛谷-P1125 笨小猴
  • 原文地址:https://www.cnblogs.com/lixiuran/p/5687531.html
Copyright © 2011-2022 走看看