|
|
|
การแปลงตัวเลขที่มีทศนิยมไปเป็นตัวหนังสือทำไงค่ะ |
|
|
|
|
|
|
|
เอา code นี้ไปใช้ดูผมก็เอามาใชและสามารถใช้ได้
<?PHP
function convert($number){
$txtnum1 =
array('ศูนย์','หนึ่ง','สอง','สาม','สี่','ห้า','หก','เจ็ด','แปด','เก้า','สิบ');
$txtnum2 =
array('','สิบ','ร้อย','พัน','หมื่น','แสน','ล้าน');
$number = str_replace(",","",$number);
$number = str_replace(" ","",$number);
$number = str_replace("บาท","",$number);
$number = explode(".",$number);
if(sizeof($number)>2){
return 'ทศนิยมหลายตัวนะจ๊ะ';
exit;
}
$strlen = strlen($number[0]);
$convert = '';
for($i=0;$i<$strlen;$i++){
$n = substr($number[0], $i,1);
if($n!=0){
if($i==($strlen-1) AND $n==1){ $convert .=
'เอ็ด'; }
elseif($i==($strlen-2) AND $n==2){
$convert .= 'ยี่'; }
elseif($i==($strlen-2) AND $n==1){
$convert .= ''; }
else{ $convert .= $txtnum1[$n]; }
$convert .= $txtnum2[$strlen-$i-1];
}
}
$convert .= 'บาท';
if($number[1]=='0' OR $number[1]=='00' OR
$number[1]==''){
$convert .= 'ถ้วน';
}else{
$strlen = strlen($number[1]);
for($i=0;$i<$strlen;$i++){
$n = substr($number[1], $i,1);
if($n!=0){
if($i==($strlen-1) AND $n==1){$convert
.= 'เอ็ด';}
elseif($i==($strlen-2) AND
$n==2){$convert .= 'ยี่';}
elseif($i==($strlen-2) AND
$n==1){$convert .= '';}
else{ $convert .= $txtnum1[$n];}
$convert .= $txtnum2[$strlen-$i-1];
}
}
$convert .= 'สตางค์';
}
return $convert;
}
$x = '5,121.10 บาท';
echo $x.' => '.convert($x);
?>
|
|
|
|
|
Date :
1 ธ.ค. 2547 12:19:29 |
By :
uan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เจ๋งมาก ๆ ครับ เดียวเอาไปใช้ด้วย หามานานแล้ว
|
|
|
|
|
Date :
1 ธ.ค. 2547 12:29:32 |
By :
เจ๋ง |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยากได้ code ที่เป็นภาษา asp นะค่ะ ของคุณความคิดเห็นที่1 นี่มัน php ไม่ใช่หรือค่ะ
แต่ถ้าของคุณความคิดเห็นที่1 ถูก แล้วมันเอาไปใส่ใน code asp ได้งัยค่ะ (งง ค่ะ)
แต่ขอบคุณนะค่ะ สำหรับคำตอบที่ หามาให้ จะเอาไว้ให้เพื่อนที่เขียน php ค่ะ
|
|
|
|
|
Date :
1 ธ.ค. 2547 17:48:20 |
By :
อ้อ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเอาไปแปลงเป็น ASP ดูเพราะว่าคำสั่งของ ASP กับ php จะคล้ายๆกัน
|
|
|
|
|
Date :
4 ธ.ค. 2547 16:37:27 |
By :
uan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเอาไปใช้ดูแล้วนะคะ ตัวเลขที่เป็น 2871.01 ได้เป็น สองพันแปดร้อยเจ็ดสิบเอ็ดบาทเอ็ดสตางค์ ซึ่งปกติที่ถูกจะต้องเป็น หนึ่งสตางค์ ไม่ใช่เอ็ดสตางค์นะคะ
|
|
|
|
|
Date :
17 ส.ค. 2548 10:22:57 |
By :
nate |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|