ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingพี่เทพ coding ค่ะ หนูรบกวนเรื่องแปลงตัวแลกเป็นคำเขียนค่ะ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: พี่เทพ coding ค่ะ หนูรบกวนเรื่องแปลงตัวแลกเป็นคำเขียนค่ะ  (อ่าน 570 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
nujum12345
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 70



ดูรายละเอียด
« เมื่อ: 03 พฤศจิกายน 2009, 20:24:22 »

หนูต้องพิมพ์รายงาน เป็นตัวอ่านค่ะ ด้วย PHP ด้วยว่าหนูคำนวณได้ตัวเลขมาชุดนึงที่มีค่าเป็นไปได้ว่ามีค่า .00 เป็นค่าสตางค์ ค่ะ
มีสคริปตัวไหนที่ช่วยแปลงค่าตัวแลกจาก 1,455.00  ให้แสดงค่าตัวอักษรมาว่า หนึ่งพันสี่ร้อยห้าสิบห้าบาทถ้วน   
หรือหากมีค่าสตางค์ ก็แสดงตัวอักษรตามจำนวนสตางค์ ตามด้วยคำว่าถ้วน บ้างค่ะ ช่วยหน่อยน่ะค่ะขอบคุณมาค่ะ พี่พี่ wanwan005 wanwan005 wanwan005
บันทึกการเข้า

Synchronize
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 83
ออฟไลน์ ออฟไลน์

กระทู้: 1,230



ดูรายละเอียด
« ตอบ #1 เมื่อ: 03 พฤศจิกายน 2009, 20:28:30 »

อันนี้ผมไม่ได้เขียนเองนะครับ เพื่อนผมส่งมาให้ แล้วผมเอามาปรับแต่งอีกนิดๆ หน่อย

โค๊ด:
function tothai($number)
{
$t1 = array('ศูนย์', 'หนึ่ง', 'สอง', 'สาม', 'สี่', 'ห้า', 'หก', 'เจ็ด', 'แปด', 'เก้า');
$t2 = array('เอ็ด', 'ยี่', 'สิบ', 'ร้อย', 'พัน', 'หมื่น', 'แสน', 'ล้าน');
$zerobahtshow = 0;
(string) $number;
$number = explode('.', $number);

if(!empty($number[1]))
if(strlen($number[1]) == 1)
{
$number[1] .= '0';
}

else if(strlen($number[1]) > 2)
{
$number[1] = ($number[1]{2} < 5) ? substr($number[1], 0, 2) : $number[1]{0}.($number[1]{1}+1);
}

for($i=0; $i<count($number); $i++)
{
$countnum[$i] = strlen($number[$i]);
if($countnum[$i] <= 7)
{
$var[$i][] = $number[$i];
}

else
{
$loopround = ceil($countnum[$i]/6);
for($j = 1; $j <= $loopround; $j++)
{
if($j == 1)
{
$slen = 0;
$elen = $countnum[$i]-(($loopround-1)*6);
}

else
{
$slen = $countnum[$i]-((($loopround+1)-$j)*6);
$elen = 6;
}
$var[$i][] = substr($number[$i], $slen, $elen);
}
}

$nstring[$i] = "";
for($k = 0; $k < count($var[$i]); $k++)
{
if($k > 0)
$nstring[$i] .= $t2[7];

$val = $var[$i][$k];
$tnstring = "";
$countval = strlen($val);

for($l = 7; $l >= 2; $l--)
{
if($countval >= $l)
{
$v = substr($val, -$l, 1);

if($v > 0)
{
if($l == 2 && $v == 1)
{
$tnstring .= $t2[($l)];
}

else if($l == 2 && $v == 2)
{
$tnstring .= $t2[1].$t2[($l)];
}

else
{
$tnstring .= $t1[$v].$t2[($l)];
}
}
}
}

if($countval >= 1)
{
$v = substr($val, -1, 1);
if($v > 0)
$tnstring .= ($v == 1 && $countval > 1 && substr($val, -2, 1) > 0) ? $t2[0] : $t1[$v];
}

$nstring[$i] .= $tnstring;
}
}

$rstring = '';

if(!empty($nstring[0]) || $zerobahtshow == 1 || empty($nstring[1]))
{
if($nstring[0] == '')
$nstring[0] = $t1[0];
$rstring .= $nstring[0].'บาท';
}

$rstring .= (count($number) == 1 || empty($nstring[1])) ? 'ถ้วน'  : $nstring[1] . 'สตางค์';

return $rstring;
}

เวลาใช้ก็แค่

โค๊ด:
echo tothai(1455);

 wanwan017
บันทึกการเข้า

nujum12345
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 70



ดูรายละเอียด
« ตอบ #2 เมื่อ: 03 พฤศจิกายน 2009, 21:15:54 »

อันนี้ผมไม่ได้เขียนเองนะครับ เพื่อนผมส่งมาให้ แล้วผมเอามาปรับแต่งอีกนิดๆ หน่อย

โค๊ด:
function tothai($number)
{
$t1 = array('ศูนย์', 'หนึ่ง', 'สอง', 'สาม', 'สี่', 'ห้า', 'หก', 'เจ็ด', 'แปด', 'เก้า');
$t2 = array('เอ็ด', 'ยี่', 'สิบ', 'ร้อย', 'พัน', 'หมื่น', 'แสน', 'ล้าน');
$zerobahtshow = 0;
(string) $number;
$number = explode('.', $number);

if(!empty($number[1]))
if(strlen($number[1]) == 1)
{
$number[1] .= '0';
}

else if(strlen($number[1]) > 2)
{
$number[1] = ($number[1]{2} < 5) ? substr($number[1], 0, 2) : $number[1]{0}.($number[1]{1}+1);
}

for($i=0; $i<count($number); $i++)
{
$countnum[$i] = strlen($number[$i]);
if($countnum[$i] <= 7)
{
$var[$i][] = $number[$i];
}

else
{
$loopround = ceil($countnum[$i]/6);
for($j = 1; $j <= $loopround; $j++)
{
if($j == 1)
{
$slen = 0;
$elen = $countnum[$i]-(($loopround-1)*6);
}

else
{
$slen = $countnum[$i]-((($loopround+1)-$j)*6);
$elen = 6;
}
$var[$i][] = substr($number[$i], $slen, $elen);
}
}

$nstring[$i] = "";
for($k = 0; $k < count($var[$i]); $k++)
{
if($k > 0)
$nstring[$i] .= $t2[7];

$val = $var[$i][$k];
$tnstring = "";
$countval = strlen($val);

for($l = 7; $l >= 2; $l--)
{
if($countval >= $l)
{
$v = substr($val, -$l, 1);

if($v > 0)
{
if($l == 2 && $v == 1)
{
$tnstring .= $t2[($l)];
}

else if($l == 2 && $v == 2)
{
$tnstring .= $t2[1].$t2[($l)];
}

else
{
$tnstring .= $t1[$v].$t2[($l)];
}
}
}
}

if($countval >= 1)
{
$v = substr($val, -1, 1);
if($v > 0)
$tnstring .= ($v == 1 && $countval > 1 && substr($val, -2, 1) > 0) ? $t2[0] : $t1[$v];
}

$nstring[$i] .= $tnstring;
}
}

$rstring = '';

if(!empty($nstring[0]) || $zerobahtshow == 1 || empty($nstring[1]))
{
if($nstring[0] == '')
$nstring[0] = $t1[0];
$rstring .= $nstring[0].'บาท';
}

$rstring .= (count($number) == 1 || empty($nstring[1])) ? 'ถ้วน'  : $nstring[1] . 'สตางค์';

return $rstring;
}

เวลาใช้ก็แค่

โค๊ด:
echo tothai(1455);

 wanwan017

ว้าว ช่างโดนจัยเด็กขี้ปัญหาอย่างหนูเจงๆ ๆ ๆ  ค่ะ  wanwan020 wanwan020 wanwan021 ของพระคุณยิ่งค่ะพี่
บันทึกการเข้า

Chalotte
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 4



ดูรายละเอียด
« ตอบ #3 เมื่อ: 03 พฤศจิกายน 2009, 21:16:55 »

มีประโยชน์ดีครับ ขอบคุณหลาย ๆ เด้อ
 wanwan003
บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์