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 > ใครมีโค้ดแปลงตัวเลขเป็นตัวอักษรบ้างครับ คืออยากรู้แนวทางครับ ยกตัวอย่างเช่น 455 ก็แสดงเป็นตัวอักษร



 

ใครมีโค้ดแปลงตัวเลขเป็นตัวอักษรบ้างครับ คืออยากรู้แนวทางครับ ยกตัวอย่างเช่น 455 ก็แสดงเป็นตัวอักษร

 



Topic : 006136

Guest




คืออยากรู้แนวทางครับ ยกตัวอย่างเช่น 455 ก็แสดงเป็นตัวอักษรด้วยว่า สี่ร้อยห้าสิบห้าบาทถ้วน ใครรู้ช่วยแนะนำด้วยนะครับ ขอบคุณครับ


Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 10 พ.ย. 2548 11:20:47 By : mr.tony View : 13234 Reply : 18
 

 

No. 1

Guest


ตอนแรกต้องแยกค่าออกมาทีล่ะค่าโดยใช้ strlen() มาช่วย
แล้วสร้างฟังก์ชั่นอาเรย์ที่ใช้ในการเปรียบเทียบค่า เช่น
function gen_degit($def)
{
$mm = '';
$m=array(4=>"สี่",8=>"แปด",6=>"หก");
foreach ($m as $key => $value)
{
$mm .= '<option value="' . $key . '"';
if ($key == $def)
$mm .= ' selected="selected"';
$mm .= '>'.$value.'</option>';
}
return $mm;
}
แล้วก้อเช็คเงื่อนไขถ้า strlen() ที่ได้มีค่าเท่ากับค่า $key ที่กำหนดค่าใดให้ echo ค่า $value ออกมา
แล้วนำค่าที่ได้มา implode()

เราช่วยแสดงความคิดอ่ะ
ไม่แน่ใจเหมือนกานว่าจะได้รึป่าว แต่ก้อน่าจะได้น่ะ






Date : 10 พ.ย. 2548 11:40:26 By : แอม
 


 

No. 2

Guest


***เราบอกผิดอ่ะตรงฟังก์ชั่น strlen() ไม่ใช่เป็น substr()
Date : 10 พ.ย. 2548 11:48:38 By : แอม
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

<?PHP
function convert($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 .= ''; }
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 = '543219';
echo $x.' => '.convert($x);
?>
Date : 10 พ.ย. 2548 16:56:43 By : @W_IN
 


 

No. 4

Guest


สุดยอดเลยครับ คุณ MR.WIN
ขอให้มีความสุขมากๆ นะครับ จากใจจริง

Date : 2009-08-14 09:49:10 By : Achita
 


 

No. 5

Guest


String st[] = {"พัน", "ร้อย", "สิบ"};
// String st2[] = {" ", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า"};
// mod = num1;
// for (int i = 0; i < a.length; i++) {
// if (mod > a[i]) {
// num2 = mod / a[i];
// mod = num1 % a[i];
// st3[i] = num2;
// for (int j = 0; j < st2.length; j++) {
// if (num2 == j) {
// str = st2[j];
// System.out.print(str + st[i]);
// }
// }
// if (mod < a[2]) {
// st3[i] = mod;
// for (int j = 0; j < st2.length; j++) {
// if (mod == j) {
// str = st2[j];
// System.out.print(str + st[i] + "บาท");
// }
// }
//
// }
Date : 2010-10-25 20:24:28 By : ป
 


 

No. 6

Guest


http://web-programming-bookmark.blogspot.com/2010/10/num2thai-by-dr-yes.html
Date : 2010-10-25 22:39:56 By : num
 


 

No. 7



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

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

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

Go to : แจกกันเล่นๆ อีกแล้วครับท่าน (ถ้า มีคนแจกมาก่อนหน้านี้แล้วก็ขออภัยที่ทำให้รกบอร์ดนะครับ)
Date : 2010-10-29 08:24:52 By : webmaster
 


 

No. 8



โพสกระทู้ ( 99 )
บทความ ( 0 )



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

ขอบคุณครับ mr.win สุดยอดไปเลยครับ
Date : 2011-02-05 17:11:54 By : shinjangs
 


 

No. 9

Guest



Date : 2011-04-20 09:10:33 By : 1234
 


 

No. 10

Guest


แล้วถ้าเราจะทำแบบกรอกตัวเลขเข้าไปแล้วให้ตัวอักษรมันออกมาอ่ะค่ะ ต้องปรับส่วนไหนเพิ่มค่ะ
Date : 2011-04-20 09:45:29 By : Guest
 


 

No. 11



โพสกระทู้ ( 215 )
บทความ ( 0 )



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

อะ!!!! คำถาม เชาว์


ถามว่า "101 บาท" อ่านว่า "หนึ่งร้อยหนึ่งบาท" หรือ "หนึ่งร้อยเอ็ดบาท"????


ประวัติการแก้ไข
2011-04-20 09:51:14
Date : 2011-04-20 09:50:39 By : compeng
 


 

No. 12

Guest


เราเอาโค๊ดมาปรับดูแล้ว แต่ยังไม่ได้อ่ะค่ะ
Code (PHP)
function cal(){
	var t1 = document.f1.t1;
	var t2 = document.f1.t2;
	var x = document.f1.x;
	if (isNaN(t1.value*1)){
		t1.value = 0;
	}
	if (isNaN(t2.value*1)){
		t2.value = 0;
	}	
	x.value =  (parseFloat(t1.value) + parseFloat(t2.value)).toFixed(2);
}
</script>

<form name="f1">
1<input type="text" name="t1" value="0" onkeyup="cal()" /><br/>
2<input type="text" name="t2" value="0" onkeyup="cal()" /><br/>
3<input type="text" name="x" value="0" />
<?PHP
function convert($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 .= ''; }
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='';
echo $x.' => '.convert($x);
?>


เราคิดว่ามันน่าจะปรับ ตัว $x แต่ยังแก้ไม่ได้
Date : 2011-04-20 10:16:23 By : Guest
 


 

No. 13



โพสกระทู้ ( 215 )
บทความ ( 0 )



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

Code (PHP)
<?php //number to thai function by Dr.Yes
 
function num2thai($thb) {
list($thb, $ths) = explode('.', $thb);
$ths = substr($ths.'00', 0, 2);
$thaiNum = array('','หนึ่ง','สอง','สาม','สี่','ห้า','หก','เจ็ด','แปด','เก้า');
$unitBaht = array('บาท','สิบ','ร้อย','พัน','หมื่น','แสน','ล้าน','สิบ','ร้อย','พัน','หมื่น','แสน','ล้าน');
$unitSatang = array('สตางค์','สิบ');
$THB = '';
$j = 0;
for($i=strlen($thb)-1; $i>=0; $i--,$j++) {
$num = $thb[$i];
$tnum = $thaiNum[$num];
$unit = $unitBaht[$j];
switch(true) {
case $j==0 && $num==1 && strlen($thb)>1: $tnum = 'เอ็ด'; break;
case $j==1 && $num==1: $tnum = ''; break;
case $j==1 && $num==2: $tnum = 'ยี่'; break;
case $j==6 && $num==1 && strlen($thb)>7: $tnum = 'เอ็ด'; break;
case $j==7 && $num==1: $tnum = ''; break;
case $j==7 && $num==2: $tnum = 'ยี่'; break;
case $j!=0 && $j!=6 && $num==0: $unit = ''; break;
}
$S = $tnum . $unit;
$THB = $S . $THB;
}
if($ths=='00') {
$THS = 'ถ้วน';
} else {
$j=0;
$THS = '';
for($i=strlen($ths)-1; $i>=0; $i--,$j++) {
$num = $ths[$i];
$tnum = $thaiNum[$num];
$unit = $unitSatang[$j];
switch(true) {
case $j==0 && $num==1 && strlen($ths)>1: $tnum = 'เอ็ด'; break;
case $j==1 && $num==1: $tnum = ''; break;
case $j==1 && $num==2: $tnum = 'ยี่'; break;
case $j!=0 && $j!=6 && $num==0: $unit = ''; break;
}
$S = $tnum . $unit;
$THS = $S . $THS;
}
}
return $THB.$THS;
}
$thb = mt_rand()/100;//random ตัวเลข;
echo number_format($thb,2)."
";
echo num2thai($thb);
?> 

Date : 2011-04-20 10:53:47 By : compeng
 


 

No. 14

Guest


หน้าตาโปรแกรมจะเป็นยังงี้อ่ะค่ะ
รูป

คืออยากให้มันอ่านค่าเดียวกับช่องที่3 อ่ะค่ะ
Date : 2011-04-20 11:32:36 By : Guest
 


 

No. 15



โพสกระทู้ ( 70 )
บทความ ( 0 )



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


ดีครับ ^_^
Date : 2011-04-20 15:09:18 By : badkung04
 


 

No. 16

Guest


จาก No. 14
ยังทำไม่ได้เลยอ่ะค่ะ พี่ๆช่วยหน่อยค่ะ
Date : 2011-04-21 15:39:13 By : Guest
 


 

No. 17

Guest


มีแก้ bug นิดหน่อยนะครับ ตรงบรรทัด

if($i==($strlen-1) AND $n==1){ $convert .=
'เอ็ด'; }

แก้เป็น

if($i==($strlen-1) AND $n==1 AND ($strlen > 1)){ $convert .=
'เอ็ด'; }

เพราะ ไม่งั้น 1 บาท จะได้เป็น เอ็ดบาทครับ

อ้อ แก้ั้ทั้ง 2 ที่ (ส่วนที่เป็น บาท และส่วนที่เป็นสตางค์ครับ)
Date : 2011-08-23 11:16:38 By : ผ่านมา
 


 

No. 18



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



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


ถ้า 1.5 อ่าครับ มันเป็น หนึ่งบาทห้าสตางค์ครับ - -+

ถ้าแก้
$strlen = strlen($number[1]);

เป็น
$strlen = strlen($number[1]);
if($strlen==1){
$number[1].="0";
$strlen=2;
}

จะมีบัคป่าวครับ


ประวัติการแก้ไข
2012-02-15 11:57:26
Date : 2012-02-15 11:50:39 By : saruman248
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ใครมีโค้ดแปลงตัวเลขเป็นตัวอักษรบ้างครับ คืออยากรู้แนวทางครับ ยกตัวอย่างเช่น 455 ก็แสดงเป็นตัวอักษร
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 02
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 อัตราราคา คลิกที่นี่