zoukankan      html  css  js  c++  java
  • PHP 数字转大写

    <?php
    header("content-type:text/html;charset=utf-8");
    function numToRmb($num){
      $rmbNum = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖'];
      $rmbUnit = ['分','角','元','拾','佰','仟','万','拾','佰','仟','亿','拾','佰','仟','万','拾','佰','仟'];
      //数字预处理
      if($num == '' || $num == 0){
        return '请输入一个大于0的金额,谢谢!';
      }else {
        $num = number_format($num, 2, '.', '')*100;
      }
      if (strlen(number_format($num, 0, '', ''))>18) {
        return '输入的金额不得超过千万亿!';
      }
      //开始数字转换人民币大写
      $out1 = 0;
      $numRmb = '';
      $unit = '';
      $rmb = '';
      for ($out1 = 0 ; $out1 < strlen(number_format($num, 0, '', '')) ; $out1++) {
        $numRmb = $rmbNum[substr(number_format($num, 0, '', ''), $out1, 1)];
        $unit = $rmbUnit[strlen(number_format($num, 0, '', ''))-$out1-1];
        $rmb = $rmb.$numRmb.$unit;
      }
      // 将大写人民币中的零进行调整
      $rmbStrlen = strlen($rmb);
      for ($out2=0; $out2 < $rmbStrlen; $out2=$out2+3) {
        $tempRmb = substr($rmb, $out2, 6);
        if ($tempRmb=='零元'||$tempRmb=='零万'||$tempRmb=='零亿') {
          $left = substr($rmb, 0, $out2);
          $right = substr($rmb, $out2+3);
          $rmb = $left.$right;
          $out2 = $out2 - 3;
          $rmbStrlen = $rmbStrlen - 3;
        }elseif ($tempRmb=='零拾'||$tempRmb=='零佰'||$tempRmb=='零仟') {
          $left = substr($rmb, 0, $out2+3);
          $right = substr($rmb, $out2+6);
          $rmb = $left.$right;
          $out2 = $out2 - 3;
          $rmbStrlen = $rmbStrlen - 3;
        }elseif ($tempRmb=='零分'||$tempRmb=='零角') {
          $left = substr($rmb, 0, $out2);
          $right = substr($rmb, $out2+6);
          $rmb = $left.$right;
          $out2 = $out2 - 6;
          $rmbStrlen = $rmbStrlen - 6;
        }
        if ($tempRmb=='零零') {
          $left = substr($rmb, 0, $out2);
          $right = substr($rmb, $out2+3);
          $rmb = $left.$right;
          $out2 = $out2 - 3;
          $rmbStrlen = $rmbStrlen - 3;
        }
        if(substr($rmb,strlen($rmb)-3)=='元') {
          $rmb = $rmb.'整';
        }
      }
      return $rmb;
    }
    echo numToRmb($_POST['num']);
     ?>
  • 相关阅读:
    bzoj 4451 : [Cerc2015]Frightful Formula FFT
    bzoj 3928: [Cerc2014] Outer space invaders
    HDU 5306 线段树
    bzoj 1914: [Usaco2010 OPen]Triangle Counting 数三角形
    bzoj 4519: [Cqoi2016]不同的最小割 最小割树
    bzoj : 4504: K个串 区间修改主席树
    bzoj 4332:JSOI2012 分零食
    bzoj 2595 : [Wc2008]游览计划
    poj 3683 Priest John's Busiest Day
    bzoj 1823: [JSOI2010]满汉全席 && bzoj 2199 : [Usaco2011 Jan]奶牛议会 2-sat
  • 原文地址:https://www.cnblogs.com/lglblogadd/p/8434629.html
Copyright © 2011-2022 走看看