zoukankan      html  css  js  c++  java
  • 数字转化为人民币大写(PHP)

     1 <?php
     2 function numTrmb($num)
     3 {
     4     $d = array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖");
     5     $e = array('元', '拾', '佰', '仟', '万', '拾万', '佰万', '仟万', '亿', '拾亿', '佰亿', '仟亿');
     6     $p = array('分', '角');
     7     $zheng = "整";
     8     $final = array();
     9     $inwan = 0;//是否有万
    10     $inyi = 0;//是否有亿
    11     $len = 0;//小数点后的长度
    12     $y = 0;
    13     $num = round($num, 2);//精确到分
    14     if (strlen($num) > 15) {
    15         return "金额太大";
    16         die();
    17     }
    18     if ($c = strpos($num, '.')) {//有小数点,$c为小数点前有几位
    19         $len=strlen($num)-strpos($num,'.')-1;//小数点后有几位数
    20     }else {//无小数点
    21         $c = strlen($num);
    22         $zheng = '整';
    23     }
    24     for ($i = 0; $i < $c; $i++) {
    25         $bit_num = substr($num, $i, 1);
    26         if ($bit_num != 0 || substr($num, $i + 1, 1) != 0) {
    27             @$low = $low . $d[$bit_num];
    28         }
    29         if ($bit_num || $i == $c - 1) {
    30             @$low = $low . $e[$c - $i - 1];
    31         }
    32     }
    33     if($len!=1){
    34     for ($j = $len; $j >= 1; $j--) {
    35         $point_num = substr($num, strlen($num) - $j, 1);
    36            @$low = $low . $d[$point_num] . $p[$j - 1];
    37     }
    38     }else{
    39         $point_num = substr($num, strlen($num) - $len, 1);
    40         $low=$low.$d[$point_num].$p[$len];
    41     }
    42     $chinses = str_split($low, 3);//字符串转化为数组
    43     for ($x = count($chinses) - 1; $x >= 0; $x--) {
    44         if ($inwan == 0 && $chinses[$x] == $e[4]) {//过滤重复的万
    45             $final[$y++] = $chinses[$x];
    46             $inwan = 1;
    47         }
    48         if ($inyi == 0 && $chinses[$x] == $e[8]) {//过滤重复的亿
    49             $final[$y++] = $chinses[$x];
    50             $inyi = 1;
    51             $inwan = 0;
    52         }
    53         if ($chinses[$x] != $e[4] && $chinses[$x] !== $e[8]) {
    54             $final[$y++] = $chinses[$x];
    55         }
    56     }
    57     $newstr = (array_reverse($final));
    58     $nstr = join($newstr);
    59     if ((substr($num, -2, 1) == '0') && (substr($num, -1) <> 0)) {
    60         $nstr = substr($nstr, 0, (strlen($nstr) -6)).'零'. substr($nstr, -6, 6);
    61     }
    62     $nstr=(strpos($nstr,'零角')) ? substr_replace($nstr,"",strpos($nstr,'零角'),6) : $nstr;
    63     return $nstr = (substr($nstr,-3,3)=='元') ? $nstr . $zheng : $nstr;
    64 }
    65 echo numTrmb(556455456156.65);
  • 相关阅读:
    struts2 ajax传值
    s:iterator遍历
    JavaScript闭包
    组合继承与寄生组合式继承
    JSP EL表达式详细介绍
    js判断字符串是否包含中文或英文
    jQuery 中 jQuery(function(){})与(function(){})(jQuery) 的区别
    HTML5--新增结构元素(2)
    HTML5--新增全局属性(1)
    nodejs的安装配置(nvm-windows)
  • 原文地址:https://www.cnblogs.com/inc-is-include/p/5039173.html
Copyright © 2011-2022 走看看