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;
    	}
    
    	if (!is_numeric($num)) {
    		return false;
    	}
    
    	$flt = '';
    	if (is_integer($num)) {
    		$num = strval($num);
    	}else if(is_numeric($num)){
    		$num = strval($num);
    		$rs = explode('.',$num,2);
    		$num = $rs[0];
    		$flt = $rs[1];
    	}
    
    	$len = strlen($num);
    	$num = strrev($num);
    	$chinese = '';
    	
    	for($i = 0,$k=0;$i < $len; $i+=4,$k++){
    		$tmp_str = '';
    		$str = strrev(substr($num , $i,4));
    		$str = str_pad($str,4,'0',STR_PAD_LEFT);
    		for ($j = 0; $j < 4; $j++) { 
    			if($str{$j} !== '0'){
    				$tmp_str .= $CNum[0][$str{$j}] . $CNum[1][4-1-$j];
    			}
    		}
    		$tmp_str .= $CNum[2][$k];
    		$chinese = $tmp_str . $chinese;
    		unset($str);
    	}
    	if($flt !== ''){
    		$str = '';
    		for ($i=0; $i < strlen($flt); $i++) { 
    			$str .= $CNum[0][$flt{$i}];
    		}
    		$chinese .= "点{$str}";
    	}
    	return $chinese;
    }
    
    $str = number2Chinese(123458656.789);
    var_dump($str);
    

    运行结果

    string(63) "一亿二千三百四十五万八千六百五十六点七八九"
    
  • 相关阅读:
    TP
    vim manual 个人笔记
    关于动画属性
    过渡
    关于 css3 的filter属性
    html 中行内元素和块级元素区别
    JS以不同的格式保存文件内容
    64位Kali无法顺利执行pwn1问题的解决方案
    鱼龙混杂 · 数据结构学习笔记(01)
    Terminal(终端) 在 OS X下如何快速调用
  • 原文地址:https://www.cnblogs.com/foolishnoob/p/5744570.html
Copyright © 2011-2022 走看看