หัวข้อ: พี่เทพ coding ค่ะ หนูรบกวนเรื่องแปลงตัวแลกเป็นคำเขียนค่ะ
เริ่มหัวข้อโดย: nujum12345 ที่ 03 พฤศจิกายน 2009, 20:24:22
หนูต้องพิมพ์รายงาน เป็นตัวอ่านค่ะ ด้วย PHP ด้วยว่าหนูคำนวณได้ตัวเลขมาชุดนึงที่มีค่าเป็นไปได้ว่ามีค่า .00 เป็นค่าสตางค์ ค่ะ มีสคริปตัวไหนที่ช่วยแปลงค่าตัวแลกจาก 1,455.00 ให้แสดงค่าตัวอักษรมาว่า หนึ่งพันสี่ร้อยห้าสิบห้าบาทถ้วน หรือหากมีค่าสตางค์ ก็แสดงตัวอักษรตามจำนวนสตางค์ ตามด้วยคำว่าถ้วน บ้างค่ะ ช่วยหน่อยน่ะค่ะขอบคุณมาค่ะ พี่พี่ :wanwan005: :wanwan005: :wanwan005:
หัวข้อ: Re: พี่เทพ coding ค่ะ หนูรบกวนเรื่องแปลงตัวแลกเป็นคำเขียนค่ะ
เริ่มหัวข้อโดย: Synchronize ที่ 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; } เวลาใช้ก็แค่ :wanwan017:
หัวข้อ: Re: พี่เทพ coding ค่ะ หนูรบกวนเรื่องแปลงตัวแลกเป็นคำเขียนค่ะ
เริ่มหัวข้อโดย: nujum12345 ที่ 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; } เวลาใช้ก็แค่ :wanwan017: ว้าว ช่างโดนจัยเด็กขี้ปัญหาอย่างหนูเจงๆ ๆ ๆ ค่ะ :wanwan020: :wanwan020: :wanwan021: ของพระคุณยิ่งค่ะพี่
หัวข้อ: Re: พี่เทพ coding ค่ะ หนูรบกวนเรื่องแปลงตัวแลกเป็นคำเขียนค่ะ
เริ่มหัวข้อโดย: Chalotte ที่ 03 พฤศจิกายน 2009, 21:16:55
มีประโยชน์ดีครับ ขอบคุณหลาย ๆ เด้อ :wanwan003:
|