首頁 後端開發 php教程 PHP 金额数字转换成英文_php技巧

PHP 金额数字转换成英文_php技巧

May 17, 2016 am 09:25 AM
數位 英語

复制代码 代码如下:

$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) //从最后开始算起,每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 $num_str = $numArray[$i];
//echo "
";
//小数位的处理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 //echo "
";
//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 $bitenum[$j++] = substr($num,$i,1);
}
if($num==0) return "";
if($numlen == 1) return $numTable[$num];
if($numlen == 2) {
if($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;
}
?>
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1317
25
PHP教程
1268
29
C# 教程
1244
24
iOS 17:如何在待機模式下變更iPhone時鐘樣式 iOS 17:如何在待機模式下變更iPhone時鐘樣式 Sep 10, 2023 pm 09:21 PM

待機是一種鎖定螢幕模式,當iPhone插入充電器並以水平(或橫向)方向定位時啟動。它由三個不同的螢幕組成,其中一個是全螢幕時間顯示。繼續閱讀以了解如何變更時鐘的樣式。 StandBy的第三個畫面顯示各種主題的時間和日期,您可以垂直滑動。某些主題也會顯示其他訊息,例如溫度或下一個鬧鐘。如果您按住任何時鐘,則可以在不同的主題之間切換,包括數位、類比、世界、太陽能和浮動。 Float以可自訂的顏色以大氣泡數字顯示時間,Solar具有更多標準字體,具有不同顏色的太陽耀斑設計,而World則透過突出顯示世界地

谷歌瀏覽器如何把中文改成英文模式? 谷歌瀏覽器如何把中文改成英文模式? Mar 13, 2024 pm 07:31 PM

  谷歌瀏覽器如何把中文改成英文?有些小夥伴想要將Google瀏覽器設定為英文,這樣就能夠在使用過程中不斷的提升自己的英文了。那麼設定為英文該如何操作呢?谷歌瀏覽器預設是中文的,下面小編帶給大家谷歌瀏覽器設定語言為英文的方法,一起來看看吧。  設定步驟  1、開啟【Google瀏覽器】,如下圖所示。  2、點選Google瀏覽器右上角介面【三點】選單,如下圖所示。  3、進入選單頁面後,找到【設定】,如下圖所示。  4、進入設定頁後,點選【語言】選項,如下圖所示。  5、在語言介面選擇【新增語言】,如下圖所示。

C++程式將一個數字四捨五入到n位小數 C++程式將一個數字四捨五入到n位小數 Sep 12, 2023 pm 05:13 PM

在任何語言中編寫程式時,將數字表示為輸出是一項有趣且重要的任務。對於整數類型(short、long或medium類型的資料),很容易將數字表示為輸出。對於浮點數(float或double類型),有時我們需要將其四捨五入到特定的小數位數。例如,如果我們想將52.24568表示為三位小數,需要進行一些預處理。在本文中,我們將介紹幾種技術,透過四捨五入將浮點數表示為特定的小數位數。在不同的方法中,使用類似C的格式化字串、使用精度參數以及使用數學函式庫中的round()函數是很重要的。讓我們逐一來看。帶有

JavaScript中產生隨機數字和字串 JavaScript中產生隨機數字和字串 Sep 02, 2023 am 08:57 AM

產生隨機數或字母數字字串的能力在許多情況下都會派上用場。您可以使用它在遊戲中的不同位置生成敵人或食物。您也可以使用它向用戶建議隨機密碼或建立文件名來保存文件。我寫了一篇關於如何在PHP中產生隨機字母數字字串的教學。我在這篇文章的開頭說,幾乎沒有事件是真正隨機的,同樣的情況也適用於隨機數或字串生成。在本教程中,我將向您展示如何在JavaScript中產生偽隨機字母數字字串。在JavaScript中產生隨機數字讓我們從產生隨機數開始。我想到的第一個方法是Math.random(),它回傳一個浮

使用C++編寫程式碼,找到第N個非平方數 使用C++編寫程式碼,找到第N個非平方數 Aug 30, 2023 pm 10:41 PM

我們都知道不是任何數字的平方的數字,如2、3、5、7、8等。非平方數有N個,不可能知道每個數字。因此,在本文中,我們將解釋有關無平方數或非平方數的所有內容,以及在C++中尋找第N個非平方數的方法。第N個非平方數如果一個數是整數的平方,則該數稱為完全平方數。完全平方數的一些例子是-1issquareof14issquareof29issquareof316issquareof425issquareof5如果一個數不是任何整數的平方,則該數稱為非平方數。例如,前15個非平方數是-2,3,5,6,

如何隱藏Win11系統下的英文鍵盤 如何隱藏Win11系統下的英文鍵盤 Jan 03, 2024 pm 09:45 PM

有些朋友不需要使用英文鍵盤,只需要使用中文鍵盤,這時候就會覺得英文鍵盤非常麻煩,想要隱藏它,不過我們無法隱藏它,但是可以直接刪除英文輸入法,下面就跟著小編一起來看一下吧。 win11怎麼隱藏英文鍵盤1、英文鍵盤是無法隱藏的,但是我們可以直接在輸入法中將它刪除。 2、先透過開始選單進入“設定”3、然後在其中選擇“Time&Language”4、接著進入其中的“語言&區域”,然後點擊下方的“Addakeyboard”,就可以新增鍵盤快捷鍵了。 5.接著點擊我們想要的輸入法,再點擊左下角箭頭將它移到

如何將Windows 10自備的輸入法固定為英文 如何將Windows 10自備的輸入法固定為英文 Jan 15, 2024 pm 01:48 PM

在電腦上辦公的朋友很多都會使用英文輸入法進行工作,這時候就需要鎖定英文輸入,那該怎麼鎖定呢?下面就為你們帶來了詳細方法一起看看吧。 win10自備的輸入法怎麼鎖定英文:1、點選桌面右下角的輸入法標識,然後點選「語言首選項」。 2.之後再首選語言下面點選「新增首選的語言」。 3.在對話框中輸入英語,點選後安裝語言。 4.安裝完成後點選「設定為預設語言」即可。

Java中的數字(帶有0前綴和字串) Java中的數字(帶有0前綴和字串) Aug 29, 2023 pm 01:45 PM

Java中的數字重要的是要理解數字類不是一個有形的類,而是一個抽象的類。在它內部,我們有一組定義其功能的包裝類別。這些包裝類別包括Integer、Byte、Double、Short、Float和Long。您可能會注意到,這些與我們之前討論的基本資料類型相同,但它們表示為具有大寫名稱的單獨類,以符合類命名約定。根據特定函數或程式範圍的要求,編譯器會自動將原始資料類型轉換為對象,反之亦然,且數字類別是java.lang套件的一部分。此過程稱為自動裝箱和拆箱。透過掌握數字類別及其對應的包裝類別的抽象性質,我們可以

See all articles