Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > PHP > PHP Forum > ช่วยแก้ Bug function อ่านเงินเป็นตัวหนังสือนี้ให้หน่อยครับ



 

ช่วยแก้ Bug function อ่านเงินเป็นตัวหนังสือนี้ให้หน่อยครับ

 



Topic : 082685

Guest




ผมก็ได้มาจากในนี้แหละครับ น่าจะจาก Mr. win ผมเอาไปเพิ่มนิดหน่อยให้อ่านได้ถึงหลัก สิบล้าน
แต่มีปัญหาตรงหลัก สิบล้านที่เป็นเลขถ้วนครับ เช่น 20,300,250 มันจะอ่านว่า ยี่สิบสามแสนสองร้อยห้าสิบ.. คือตกคำว่า "ล้าน" ไป
ผมหาที่แก้ไม่เจอครับ เลยอยากให้ท่านช่วยแนะนำให้ด้วย เพิ่งเริ่มศึกษาครับผม
Code (PHP)
<?
function thbaht($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 .= ''; }
	  elseif($i==($strlen-8) AND $n==1){$convert .= ''; }
	  elseif($i==($strlen-8) AND $n==2){$convert .= 'ยี่'; }
	  elseif($i==($strlen-7) 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 = '230300350 บาท';
echo $x.' => '.thbaht($x);
?>




Tag : PHP







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2012-08-21 19:57:35 By : iManiac View : 817 Reply : 2
 

 

No. 1



โพสกระทู้ ( 1,521 )
บทความ ( 2 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Facebook

เขาแจกไว้ แต่เป็น JavaScript






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-22 01:11:11 By : Krungsri
 


 

No. 2

Guest


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

ตอนนี้ดูเหมือนจะใช้ได้ แต่ก็เป็นการวางเงื่อนไขหลายเงื่อนไข ไม่แน่ใจว่าถ้าเจออินพุตตัวเลขอื่นๆจะมีบัคเพิ่มเติมเพราะการโมครั้งนี้หรือเปล่า

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

Code (PHP)
<?
function thbaht($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!=""){
      if($i==($strlen-1) AND $strlen>1 AND $n==1){ $convert .= 'เอ็ด'; }
	  elseif($i==($strlen-1) AND $strlen>=2 AND $n==0){$convert .= ''; }
      elseif($i==($strlen-2) AND $n==2){ $convert .= 'ยี่'; }
      elseif($i==($strlen-2) AND $n==1){ $convert .= ''; }
	  elseif($i==($strlen-8) AND $n==1){$convert .= ''; }
	  elseif($i==($strlen-8) AND $n==2){$convert .= 'ยี่'; }
	  elseif($i==($strlen-7) AND $strlen>=8 AND $n==1){$convert .= 'เอ็ด'; }
	  elseif($i==($strlen-7) AND $strlen>=8 AND $n==0){$convert .= ''; }
	  elseif($strlen!=1 AND $n==0){$convert .= ''; }
      else{ $convert .= $txtnum1[$n]; }
	  		if($i==($strlen-7) AND $strlen>=8 AND $n==0){
       			$convert .= $txtnum2[$strlen-$i-1].= $txtnum[6];}
	   		elseif ($strlen!=1 AND $n==0){ 
				$convert .= $txtnum2[0];}
			else{
				$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 = '450000021';
echo $x.' => '.thbaht($x);


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-08-22 01:43:30 By : imaniac
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ช่วยแก้ Bug function อ่านเงินเป็นตัวหนังสือนี้ให้หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่