<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    PHP金額數字轉換成英文

    時間:2025-03-08 22:34:08 php語言 我要投稿
    • 相關推薦

    PHP金額數字轉換成英文

      如何利用PHP金額數字轉換成英文呢?就跟隨百分網小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!

      代碼如下:

      <?php

      $num=1220.01;

      echo fmoney($num);//結果:1,220.21

      echo umoney($num);

      //結果:ONE THOUSAND AND TWO HUNDRED TWENTY DOLLARS AND TWENTY-ONE CENTS ONLY

      echo umoney($num,"rmb");

      //結果:ONE THOUSAND AND TWO HUNDRED TWENTY YUAN AND TWENTY-ONE FEN ONLY

      //define

      //格式化貨幣

      function fmoney($num) {

      $num=0+$num;

      $num = sprintf("%.02f",$num);

      if(strlen($num) <= 6) return $num;

      //從最后開始算起,每3個數它加一個","

      for($i=strlen($num)-1,$k=1, $j=100; $i >= 0; $i--,$k++) {

      $one_num = substr($num,$i,1);

      if($one_num ==".") {

      $numArray[$j--] = $one_num;

      $k=0;

      continue;

      }

      if($k%3==0 and $i!=0) {

      //如果正好只剩下3個數字,則不加','

      $numArray[$j--] = $one_num;

      $numArray[$j--] = ",";

      $k=0;

      } else {

      $numArray[$j--]=$one_num;

      }

      }

      ksort($numArray);

      return join("",$numArray);

      }

      function umoney($num,$type="usd") {

      global $numTable,$commaTable,$moneyType;

      //global $numTable;

      $numTable[0]="ZERO ";

      $numTable[1]="ONE ";

      $numTable[2]="TWO ";

      $numTable[3]="THREE ";

      $numTable[4]="FOUR ";

      $numTable[5]="FIVE ";

      $numTable[6]="SIX ";

      $numTable[7]="SEVEN ";

      $numTable[8]="EIGHT ";

      $numTable[9]="NINE ";

      $numTable[10]="TEN ";

      $numTable[11]="ELEVEN ";

      $numTable[12]="TWELVE ";

      $numTable[13]="THIRTEEN ";

      $numTable[14]="FOURTEEN ";

      $numTable[15]="FIFTEEN ";

      $numTable[16]="SIXTEEN ";

      $numTable[17]="SEVENTEEN ";

      $numTable[18]="EIGHTEEN ";

      $numTable[19]="NINETEEN ";

      $numTable[20]="TWENTY ";

      $numTable[30]="THIRTY ";

      $numTable[40]="FORTY ";

      $numTable[50]="FIFTY ";

      $numTable[60]="SIXTY ";

      $numTable[70]="SEVENTY ";

      $numTable[80]="EIGHTY ";

      $numTable[90]="NINETY ";

      $commaTable[0]="HUNDRED ";

      $commaTable[1]="THOUSAND ";

      $commaTable[2]="MILLION ";

      $commaTable[3]="MILLIARD ";

      $commaTable[4]="BILLION ";

      $commaTable[5]="????? ";

      //單位

      $moneyType["usd"]="DOLLARS ";

      $moneyType["usd_1"]="CENTS ONLY";

      $moneyType["rmb"]="YUAN ";

      $moneyType["rmb_1"]="FEN ONLY";

      if($type=="") $type="usd";

      $fnum = fmoney($num);

      $numArray = explode(",",$fnum);

      $resultArray = array();

      $k=0;

      $cc=count($numArray);

      for($i = 0; $i < count($numArray); $i++) {

      $num_str = $numArray[$i];

      //echo "<br>";

      //小數位的處理400.21

      if(eregi("\.",$num_str)) {

      $dotArray = explode(".",$num_str);

      if($dotArray[1] != 0) {

      $resultArray[$k++]=format3num($dotArray[0]+0);

      $resultArray[$k++]=$moneyType[strtolower($type)];

      $resultArray[$k++]="AND ";

      $resultArray[$k++]=format3num($dotArray[1]+0);

      $resultArray[$k++]=$moneyType[strtolower($type)."_1"];

      } else {

      $resultArray[$k++]=format3num($dotArray[0]+0);

      $resultArray[$k++]=$moneyType[strtolower($type)];

      }

      } else {

      //非小數位的處理

      if(($num_str+0)!=0) {

      $resultArray[$k++]=format3num($num_str+0);

      $resultArray[$k++]=$commaTable[--$cc];

      //判斷:除小數外其余若不為零則加and

      for($j=$i; $j <= $cc; $j++) {

      //echo "<br>";

      //echo $numArray[$j];

      if($numArray[$j] !=0) {

      $resultArray[$k++]="AND ";

      break;

      }

      }

      }

      }

      }

      return join("",$resultArray);

      }

      function format3num($num) {

      global $numTable,$commaTable;

      $numlen = strlen($num);

      for($i = 0,$j = 0;$i < $numlen; $i++) {

      $bitenum[$j++] = substr($num,$i,1);

      }

      if($num==0) return "";

      if($numlen == 1) return $numTable[$num];

      if($numlen == 2) {

      if($num <= 20) return $numTable[$num];

      //第一位不可能零

      if($bitenum[1]==0) {

      return $numTable[$num];

      } else {

      return trim($numTable[$bitenum[0]*10])."-".$numTable[$bitenum[1]];

      }

      }

      //第一個不可能為零

      if($numlen == 3) {

      if($bitenum[1]==0 && $bitenum[2]==0) {

      //100

      return $numTable[$bitenum[0]].$commaTable[0];

      } elseif($bitenum[1]==0) {

      //102

      return $numTable[$bitenum[0]].$commaTable[0].$numTable[$bitenum[2]];

      } elseif ($bitenum[2]==0) {

      //120

      return $numTable[$bitenum[0]].$commaTable[0].$numTable[$bitenum[1]*10];

      } else {

      //123

      return $numTable[$bitenum[0]].$commaTable[0].trim($numTable[$bitenum[1]*10])."-".$numTable[$bitenum[2]];

      }

      }

      return $num;

      }

      ?>

    【PHP金額數字轉換成英文】相關文章:

    PHP語言的數字類型05-28

    php動態網頁怎么轉換成html靜態頁面08-08

    用PHP自動把純文本轉換成Web頁面方法05-19

    PHP中IP地址與整型數字互相轉換04-25

    php日期轉時間戳 指定日期轉換成時間戳01-23

    php中數字0和空值的區別分析03-08

    英文題目的PHP面試題及答案04-02

    php下一個阿拉伯數字轉中文數字的函數01-22

    PHP正則匹配中文字母數字正則的表達式07-14

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人