แปลงค่าเงินตัวเลขเป็นตัวอักษร ,ตัวหนังสือ -> แจกกันเล่นๆ อีกแล้วครับท่าน (ถ้า มีคนแจกมาก่อนหน้านี้แล้วก็ขออภัยที่ทำให้รกบอร์ดนะครับ)
ฟังก์ชั่นแปลงจำนวนเงินที่เป็นตัวเลขให้เป็นคำอ่านคร๊าบบบบบ
Code (PHP)
function ThaiBaht(Number)
{
//ตัดสิ่งที่ไม่ต้องการทิ้งลงโถส้วม
for (var i = 0; i < Number.length; i++)
{
Number = Number.replace (",", ""); //ไม่ต้องการเครื่องหมายคอมมาร์
Number = Number.replace (" ", ""); //ไม่ต้องการช่องว่าง
Number = Number.replace ("บาท", ""); //ไม่ต้องการตัวหนังสือ บาท
Number = Number.replace ("฿", ""); //ไม่ต้องการสัญลักษณ์สกุลเงินบาท
}
//สร้างอะเรย์เก็บค่าที่ต้องการใช้เอาไว้
var TxtNumArr = new Array ("ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า", "สิบ");
var TxtDigitArr = new Array ("", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน");
var BahtText = "";
//ตรวจสอบดูซะหน่อยว่าใช่ตัวเลขที่ถูกต้องหรือเปล่า ด้วย isNaN == true ถ้าเป็นข้อความ == false ถ้าเป็นตัวเลข
if (isNaN(Number))
{
return "ข้อมูลนำเข้าไม่ถูกต้อง";
} else
{
//ตรวสอบอีกสักครั้งว่าตัวเลขมากเกินความต้องการหรือเปล่า
if ((Number - 0) > 9999999.9999)
{
return "ข้อมูลนำเข้าเกินขอบเขตที่ตั้งไว้";
} else
{
//พรากทศนิยม กับจำนวนเต็มออกจากกัน (บาปหรือเปล่าหนอเรา พรากคู่เขา)
Number = Number.split (".");
//ขั้นตอนต่อไปนี้เป็นการประมวลผลดูกันเอาเองครับ แบบว่าขี้เกียจจะจิ้มดีดแล้ว อิอิอิ
if (Number[1].length > 0)
{
Number[1] = Number[1].substring(0, 2);
}
var NumberLen = Number[0].length - 0;
for(var i = 0; i < NumberLen; i++)
{
var tmp = Number[0].substring(i, i + 1) - 0;
if (tmp != 0)
{
if ((i == (NumberLen - 1)) && (tmp == 1))
{
BahtText += "เอ็ด";
} else
if ((i == (NumberLen - 2)) && (tmp == 2))
{
BahtText += "ยี่";
} else
if ((i == (NumberLen - 2)) && (tmp == 1))
{
BahtText += "";
} else
{
BahtText += TxtNumArr[tmp];
}
BahtText += TxtDigitArr[NumberLen - i - 1];
}
}
BahtText += "บาท";
if ((Number[1] == "0") || (Number[1] == "00"))
{
BahtText += "ถ้วน";
} else
{
DecimalLen = Number[1].length - 0;
for (var i = 0; i < DecimalLen; i++)
{
var tmp = Number[1].substring(i, i + 1) - 0;
if (tmp != 0)
{
if ((i == (DecimalLen - 1)) && (tmp == 1))
{
BahtText += "เอ็ด";
} else
if ((i == (DecimalLen - 2)) && (tmp == 2))
{
BahtText += "ยี่";
} else
if ((i == (DecimalLen - 2)) && (tmp == 1))
{
BahtText += "";
} else
{
BahtText += TxtNumArr[tmp];
}
BahtText += TxtDigitArr[DecimalLen - i - 1];
}
}
BahtText += "สตางค์";
}
return BahtText;
}
}
}
Tag : - - - -
Date :
2009-09-25 21:31:41
By :
NanoTHoro
View :
23364
Reply :
18
ขอบคุณมากครับ คุณ นาโน
Date :
2009-09-25 21:56:34
By :
onizike
ขอบคุณมากมายนะค่ะ
Date :
2010-06-09 12:02:13
By :
peacefulgirl
คนไทยใจดีครับ
Date :
2010-06-09 13:06:04
By :
SOUL
ขอบคุณหลายๆ
อวยพร ขอให้ มีเมีย สวยๆ
( ถ้ามี เมีย สวยอยู่แล้ว ก็ ขอให้ มีกิ๊ก สวยกว่าเมีย ครับ )
Date :
2010-06-13 13:37:03
By :
roj2007
แวะมาอีกรอบ
มี version แปลงเป็น อังกฤษ ไหมหนอออ
Date :
2010-06-15 14:45:21
By :
peacefulgirl
work ครับ
Date :
2011-04-20 15:11:13
By :
badkung04
vb.net มีมั้ยครับ
Date :
2011-07-12 22:24:46
By :
pisansri
ผมลองดูแล้วมันขึ้นว่า syntax error, unexpected ')', expecting '&' or T_VARIABLE in /home/taladrongl/domains/taladronglua.com/public_html/inc/thaibaht.php on line 2 น่ะครับ ช่วยดูให้หน่อย
Date :
2011-08-16 02:42:25
By :
nobuts
อยากได้ version ภาษาอังกฤษอ่ะ
Date :
2011-10-03 14:47:58
By :
ขาจร
กระทู้ถูกขุด !!!!!
คุณก็เปลี่ยนจากคำไทยเป็นอังกฤษ ก็ไม่เห็นยากนิครับ
Date :
2011-10-03 14:54:08
By :
Dragons_first
แล้วมี เวอร์ชั่นภาษาอังกฤษ ที่เป็น Bath Only ไหมครับ
Date :
2012-01-08 22:00:16
By :
ddsiam
ขอบคุณมากกกกครับบบ
Date :
2012-08-01 00:22:23
By :
Natcha
1-หากต้องการให้อ่านเป็นหลักจำนวนสิบล้าน จะทำยังไงค่ะ??
Date :
2013-04-04 14:11:31
By :
Milkiiz
จากโค้ดที่ให้มา หากต้องการให้ .735 แล้วเครื่องอ่าน .74 จะทำยังไงค่ะ
Date :
2013-04-05 11:26:46
By :
Milkiiz
จากโค้ดที่ให้มา หากต้องการให้ .735 แล้วเครื่องอ่าน .74 จะทำยังไงค่ะ
Date :
2013-04-05 11:39:22
By :
Milkiiz
นี้มันโค้ด javascript ไม่ใช่เหรอครับ หรือผมเข้าใจผิด?
Date :
2013-11-17 13:49:36
By :
EThaiZone
PHP Class numtobahtthai [แปลงตัวเลขเป็นอักษรสกุลเงินภาษาไทย] :: http://songsaluang.blogspot.com/2013/07/class-numtobahtthai-echo-number.html
PHP Class numtobahteng [แปลงตัวเลขเป็นอักษรสกุลเงินภาษาอังกฤษ] :: http://songsaluang.blogspot.com/2013/07/php-class-numtobahteng.html
Date :
2013-11-24 21:01:04
By :
songsaluang
Code (PHP)
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>php bathtext by www.code-father.com</title>
<?
$input_number=756.50;
echo $input_number."<br>";
$digit=array('ศูนย์','หนึ่ง','สอง','สาม','สี่','ห้า','หก','เจ็ด','แปด','เก้า','สิบ','สิบเอ็ด');
$digit2=array('','สิบ','ร้อย','พัน','หมื่น','แสน','ล้าน');
$explode_number = explode(".",$input_number);
$num0=$explode_number[0]; // เลขจำนวนเต็ม
$num1=$explode_number[1]; // หลักทศนิยม
// เลขจำนวนเต็ม
$didit2_chk=strlen($num0)-1;
for($i=0;$i<=strlen($num0)-1;$i++){
$cut_input_number=substr($num0,$i,1);
if($cut_input_number==0){ // ถ้าเลข 0 ไม่ต้องใส่ค่าอะไร
//$bathtext1.=''."".$digit2[$didit2_chk];
}elseif($cut_input_number==2 && $didit2_chk==1){ // ถ้าเลข 2 อยู่หลักสิบ
$bathtext1.='ยี่'."".$digit2[$didit2_chk];
}elseif($cut_input_number==1 && $didit2_chk==1){ // ถ้าเลข 1 อยู่หลักสิบ
//$bathtext1.= ''."".$digit2[$didit2_chk];
}elseif($cut_input_number==1 && $didit2_chk==0){ // ถ้าเลข 1 อยู่หลักหน่วย
if(substr($num0,$i-1,1)==0){
$bathtext1.= 'หนึ่ง'."".$digit2[$didit2_chk];
}else{
$bathtext1.= 'เอ็ด'."".$digit2[$didit2_chk];
}
}else{
$bathtext1.= $digit[$cut_input_number]."".$digit2[$didit2_chk];
}
$didit2_chk=$didit2_chk-1;
}
$bathtext1.='บาท ';
// เลขทศนิยม
$didit2_chk=strlen($num1)-1;
for($i=0;$i<=strlen($num1)-1;$i++){
$cut_input_number=substr($num1,$i,1);
if($cut_input_number==0){ // ถ้าเลข 0 ไม่ต้องใส่ค่าอะไร
}elseif($cut_input_number==2 && $didit2_chk==1){ // ถ้าเลข 2 อยู่หลักสิบ
$bathtext1.='ยี่'."".$digit2[$didit2_chk];
}elseif($cut_input_number==1 && $didit2_chk==1){ // ถ้าเลข 1 อยู่หลักสิบ
$bathtext1.= ''."".$digit2[$didit2_chk];
}elseif($cut_input_number==1 && $didit2_chk==0){ // ถ้าเลข 1 อยู่หลักหน่วย
if(substr($num1,$i-1,1)==0){
$bathtext1.= 'หนึ่ง'."".$digit2[$didit2_chk];
}else{
$bathtext1.= 'เอ็ด'."".$digit2[$didit2_chk];
}
}else{
$bathtext1.= $digit[$cut_input_number]."".$digit2[$didit2_chk];
}
$didit2_chk=$didit2_chk-1;
}
$bathtext1.='สตางค์';
echo $bathtext1;
?>
ค่าที่ได้เป็น เจ็ดร้อยห้าสิบหกบาท ห้าสตางค์
Date :
2015-03-31 14:21:41
By :
ddsiam
Load balance : Server 01