当前位置:Gxlcms > PHP教程 > 将数值(千亿以下)转换为大写人民币解决办法

将数值(千亿以下)转换为大写人民币解决办法

时间:2021-07-01 10:21:17 帮助过:33人阅读

将数值(千亿以下)转换为大写人民币
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"); 
?>                     

人气教程排行