/**
* เวลาเรียกใช้ให้เรียก ThaiBahtConversion(1234020.25); ประมาณนี้
* @param numberic $amount_number
* @return string
*/
function ThaiBahtConversion($amount_number)
{
$amount_number = number_format($amount_number, 2, ".","");
//echo "<br/>amount = " . $amount_number . "<br/>";
$pt = strpos($amount_number , ".");
$number = $fraction = "";
if ($pt === false)
$number = $amount_number;
else
{
$number = substr($amount_number, 0, $pt);
$fraction = substr($amount_number, $pt + 1);
}
//list($number, $fraction) = explode(".", $number);
$ret = "";
$baht = ReadNumber ($number);
if ($baht != "")
$ret .= $baht . "บาท";
$satang = ReadNumber($fraction);
if ($satang != "")
$ret .= $satang . "สตางค์";
else
$ret .= "ถ้วน";
//return iconv("UTF-8", "TIS-620", $ret);
return $ret;
}
function ReadNumber($number)
{
$position_call = array("แสน", "หมื่น", "พัน", "ร้อย", "สิบ", "");
$number_call = array("", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า");
$number = $number + 0;
$ret = "";
if ($number == 0) return $ret;
if ($number > 1000000)
{
$ret .= ReadNumber(intval($number / 1000000)) . "ล้าน";
$number = intval(fmod($number, 1000000));
}
$divider = 100000;
$pos = 0;
while($number > 0)
{
$d = intval($number / $divider);
$ret .= (($divider == 10) && ($d == 2)) ? "ยี่" :
((($divider == 10) && ($d == 1)) ? "" :
((($divider == 1) && ($d == 1) && ($ret != "")) ? "เอ็ด" : $number_call[$d]));
$ret .= ($d ? $position_call[$pos] : "");
$number = $number % $divider;
$divider = $divider / 10;
$pos++;
}
return $ret;
}
* เวลาเรียกใช้ให้เรียก ThaiBahtConversion(1234020.25); ประมาณนี้
* @param numberic $amount_number
* @return string
*/
function ThaiBahtConversion($amount_number)
{
$amount_number = number_format($amount_number, 2, ".","");
//echo "<br/>amount = " . $amount_number . "<br/>";
$pt = strpos($amount_number , ".");
$number = $fraction = "";
if ($pt === false)
$number = $amount_number;
else
{
$number = substr($amount_number, 0, $pt);
$fraction = substr($amount_number, $pt + 1);
}
//list($number, $fraction) = explode(".", $number);
$ret = "";
$baht = ReadNumber ($number);
if ($baht != "")
$ret .= $baht . "บาท";
$satang = ReadNumber($fraction);
if ($satang != "")
$ret .= $satang . "สตางค์";
else
$ret .= "ถ้วน";
//return iconv("UTF-8", "TIS-620", $ret);
return $ret;
}
function ReadNumber($number)
{
$position_call = array("แสน", "หมื่น", "พัน", "ร้อย", "สิบ", "");
$number_call = array("", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า");
$number = $number + 0;
$ret = "";
if ($number == 0) return $ret;
if ($number > 1000000)
{
$ret .= ReadNumber(intval($number / 1000000)) . "ล้าน";
$number = intval(fmod($number, 1000000));
}
$divider = 100000;
$pos = 0;
while($number > 0)
{
$d = intval($number / $divider);
$ret .= (($divider == 10) && ($d == 2)) ? "ยี่" :
((($divider == 10) && ($d == 1)) ? "" :
((($divider == 1) && ($d == 1) && ($ret != "")) ? "เอ็ด" : $number_call[$d]));
$ret .= ($d ? $position_call[$pos] : "");
$number = $number % $divider;
$divider = $divider / 10;
$pos++;
}
return $ret;
}
Code ภาษา PHP ใช้สำหรับแปลงค่าเงิน แปลงตัวเลข ให้กลายเป็นคำอ่านภาษาไทย รองรับตัวเลขได้ประมาณ ล้านล้าน นะน่าจะไหวอยู่ไม่แน่ใจเหมือนกัน แต่การเขียนโปรแกรมเป็นแบบ Integer Base ก็คือใช้การคำนวณตัวเลขเป็นจำนวนเต็ม ถ้าจะให้รองรับเลขมาก ๆ ก็น่าจะใช้เป็นรูปแบบของ String Base คือใช้การตัดสตริงเอาไม่ต้องมา div มา mod อยู่
มี bug หรือว่าข้อผิดพลาด หรืออยากจะให้รองรับเลขมากกว่านี้ก็ลองส่งคอมเม้นท์มาด้านล่างนะครับ ถ้าเปิดมาปุ๊บมาเห็นก็จะรีบแก้ไขให้ถูกต้องนะครับ
4 มกราคม 2557 - มีคนเปิดดูพันคนแล้วดีใจจังเลย อิอิ :)
9 กรกฎาคม 2557 - มีคนเปิดดูสองพันคนแล้ว :)
ด้านล่างนี้เผื่อ Search กันจะได้ Search เจอ blog เรา อิอิ :)
โค้ด แปลงตัวเลขเป็นคำอ่านภาษาไทย แปลงตัวเลขเป็นอักษร ภาษาไทย แปลงค่าเงินเป็นตัวอักษรภาษาไทย PHP แปลงตัวเลขเป็นข้อความ แปลงจำนวนเงินเป็นข้อความ แปลงจำนวนเงินเป็นตัวอักษร แปลงจำนวนเงินเป็นคำอ่านภาษาไทย
ขอบคุณครับ มัน้ยี่ยมมาก
ตอบลบสุดยอดครับ ไปแปะใช้ได้ทันทีเลย ขอบคุณครับ
ตอบลบโค้ด แปลงตัวเลขเป็นคำอ่านภาษาไทย แปลงตัวเลขเป็นอักษร ภาษาไทย แปลงค่าเงินเป็นตัวอักษรภาษาไทย PHP แปลงตัวเลขเป็นข้อความ แปลงจำนวนเงินเป็นข้อความ แปลงจำนวนเงินเป็นตัวอักษร แปลงจำนวนเงินเป็นคำอ่านภาษาไทย
ขอบคุณนะคะ
ตอบลบขอบคุณครับ รองรับเลข พันล้านได้ สบายเลย
ตอบลบขอบคุณคราบ
ตอบลบขอบคุณค่ะ
ตอบลบขอบคุณมากนะครับ
ตอบลบเยี่ยมมากครับ ขอบคุณครับ
ตอบลบขอบคุณมากครับ
ตอบลบด้วยความยินดีครับ อิอิ
ลบขอบคุณครับ
ตอบลบขอบคุณครับ สุดยอดมากเลยครับ งานเนียนเวอร์
ตอบลบขอบคุณมากครับ
ตอบลบขอบคุณมากครับ
ตอบลบ