コードをコピーします コードは次のとおりです:
$num=1220.01;
echo fmoney($num);//結果: 1,220.21
echo umoney($num);結果: 1,220 ドルと 21 セントのみ
echo umoney($num,"rmb")
//結果: 1,220 元と 21 フェンのみ
//define
//フォーマット
function fmoney($num) {
$num=0+$num;
$num = sprintf("%.02f",$num);
if(strlen($num) //末尾から数えて 3 桁ごとに「,」を 1 つ追加します
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--] = ",";
} else {
$numArray[$j--]=$one_num;
ksort($numArray);
return join("",$numArray);
関数 umoney($num,$type="usd") {
global $numTable,$commaTable,$moneyType; $numTable[0]="ゼロ";
$numTable[2]="2"; [4]="4 ";
$numTable[5]="5";
$numTable[7]="セブン"; ";
$numTable[9]="NINE ";
$numTable[10]="TEN ";
$numTable[11]="ELEVEN ";
$numTable[12]="TWELVE ";
$ numTable[ 13]="サーティーン ";
$numTable[15]="フィフティーン ";
$numTable[17]="セブンティーン" ;
$numTable[18]="EIGHTEEN ";
$numTable[20]="TWENTY "; ]="40";
$numTable[50]="50";
$numTable[70]="70";
$numTable[90]="90";
$commaTable[0]="HUNDRED";
$commaTable[2]="MILLION"; ="ミリヤード ";
$commaTable[5]="??????"
//単位
$moneyType["usd"]="ドル"; $moneyType["usd_1"]="セントのみ";
$moneyType["rmb"]="人民元";
$moneyType["rmb_1"]="フェンのみ"; $type="usd";
$fnum = fmoney($num);
$resultArray = array(); ($numArray);
for($i = 0; $i < count($numArray); $i++) {
$num_str = $numArray[$i];
//echo "
"; //10 進数の処理 400.21
if(eregi(".",$num_str) {
$dotArray =explode(".",$num_str);
if($dotArray[1] != 0) {
$resultArray [$k++]=format3num($dotArray[0]+0);
$resultArray[$k++]=$moneyType[strto lower($type)];
$resultArray[$k++]="AND "; $k++]=format3num($dotArray[1]+0);
$resultArray[$k++]=$moneyType[strto lower($type)."_1"];
} else {
$resultArray[$k++] =format3num ($dotArray[0]+0);
$resultArray[$k++]=$moneyType[strto lower($type)];
}
} else {
//10 進数以外の数字の処理
if(($num_str +0) )!=0) {
$resultArray[$k++]=format3num($num_str+0);
$resultArray[$k++]=$commaTable[--$cc];
//判定:小数点以下の場合ゼロではない場合は、 and
for($j=$i; $j //echo "
"
//echo $numArray[$j]; ($numArray[$j] !=0) {
$resultArray[$k++]="AND ";
}
}
}
}
return join("",$resultArray);
関数 format3num($num) {
グローバル $numTable,$commaTable;
$numlen = strlen($num); $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]];
}
}
$num を返す
;
以上、PHPの金額数値の英語への変換を内容も含めて紹介しましたが、PHPチュートリアルに興味のある友人の参考になれば幸いです。