สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network
Moderator: mindphp, ผู้ดูแลกระดาน
-
Patipat
- PHP Super Hero Member
- โพสต์: 996
- ลงทะเบียนเมื่อ: 10/06/2019 10:12 am
โพสต์ที่ยังไม่ได้อ่าน
โดย Patipat »
ผมเขียน Function แปลงภาษาจากตัวเลขเป็นภาษาไทยแต่ว่า ในบางตัวเลขก็ใช้ได้ ปกติ บางตัวเลขก็ยังมี เออเร่อ พอจะทราบไหมครับว่า มันเป็นที่อะไรครับ
ภาพแรก ยังเออเร่ออยู่แต่ว่า ค่าอ่านได้ปกติ
- Selection_999(122).png (66.71 KiB) Viewed 1312 times
ภาพที่สอง อ่านได้ไม่เออเร่อครับ
- Selection_999(123).png (12.74 KiB) Viewed 1312 times
ภาพที่3 โค๊ดบรรทัดที่เออเร่อ
- Selection_999(124).png (92.5 KiB) Viewed 1312 times
ส่วนนี้จะเป็นโค้ด Function ทั้งหมดครับ
โค้ด: เลือกทั้งหมด
<?php
function bathformat($number) {
$numberstr = array('ศูนย์','หนึ่ง','สอง','สาม','สี่','ห้า','หก','เจ็ด','แปด','เก้า','สิบ');
$digitstr = array('','สิบ','ร้อย','พัน','หมื่น','แสน','ล้าน');
$number = str_replace(",","",$number); // ลบ comma
$number = explode(".",$number); // แยกจุดทศนิยมออก
// เลขจำนวนเต็ม
$strlen = strlen($number[0]);
$result = '';
for($i=0;$i<$strlen;$i++) {
$n = substr($number[0], $i,1);
if($n!=0) {
if($i==($strlen-1) AND $n==1){ $result .= 'เอ็ด'; }
elseif($i==($strlen-2) AND $n==2){ $result .= 'ยี่'; }
elseif($i==($strlen-2) AND $n==1){ $result .= ''; }
else{ $result .= $numberstr[$n]; }
$result .= $digitstr[$strlen-$i-1];
}
}
// จุดทศนิยม
$strlen = strlen($number[1]);
if ($strlen > 0) { // ทศนิยมมากกว่า 2 ตำแหน่ง คืนค่าเป็นตัวเลข
$result .= 'จุด';
for($i=0;$i<$strlen;$i++) {
$result .= $numberstr[(int)$number[1][$i]];
}
} else { // คืนค่าเป็นจำนวนเงิน (บาท)
$result .= 'บาท';
if ($number[1]=='0' OR $number[1]=='00' OR $number[1]=='') {
$result .= 'ถ้วน';
} else {
// จุดทศนิยม (สตางค์)
for($i=0;$i<$strlen;$i++) {
$n = substr($number[1], $i,1);
if($n!=0){
if($i==($strlen-1) AND $n==1){$result .= 'เอ็ด';}
else if($i==($strlen-2) AND $n==2){$result .= 'ยี่';}
else if($i==($strlen-2) AND $n==1){$result .= '';}
else{ $result .= $numberstr[$n];}
$result .= $digitstr[$strlen-$i-1];
}
}
$result .= 'สตางค์';
}
}
return $result;
}
?>
Kor ma di kub.
-
thatsawan
- PHP VIP Members
- โพสต์: 28508
- ลงทะเบียนเมื่อ: 31/03/2014 10:02 am
-
ติดต่อ:
โพสต์ที่ยังไม่ได้อ่าน
โดย thatsawan »
echo ตัวแปล บรรทัด 221 มาเช็ค มีค่าจริงป่าว
เช็คไล่ย้อนขึ้นไป
-
Patipat
- PHP Super Hero Member
- โพสต์: 996
- ลงทะเบียนเมื่อ: 10/06/2019 10:12 am
โพสต์ที่ยังไม่ได้อ่าน
โดย Patipat »
thatsawan เขียน:echo ตัวแปล บรรทัด 221 มาเช็ค มีค่าจริงป่าว
เช็คไล่ย้อนขึ้นไป
ค่าเป็น 0 จริงด้วยครับ
- Selection_999(125).png (57.68 KiB) Viewed 1306 times
Kor ma di kub.
-
tsukasaz
- PHP VIP Members
- โพสต์: 21911
- ลงทะเบียนเมื่อ: 18/04/2012 9:39 am
โพสต์ที่ยังไม่ได้อ่าน
โดย tsukasaz »
ตอนเรียกใช้ function ชื่อ bathformat เรียกใช้ยังไงครับ
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
-
Patipat
- PHP Super Hero Member
- โพสต์: 996
- ลงทะเบียนเมื่อ: 10/06/2019 10:12 am
โพสต์ที่ยังไม่ได้อ่าน
โดย Patipat »
เรียกแสดงแบบนี้ครับ
1 แสดงเป็นภาษาไทย
2 แสดงเป็นภาษาอังกฤษครับ
- Selection_999(127).png (24.29 KiB) Viewed 1304 times
Kor ma di kub.
-
tsukasaz
- PHP VIP Members
- โพสต์: 21911
- ลงทะเบียนเมื่อ: 18/04/2012 9:39 am
โพสต์ที่ยังไม่ได้อ่าน
โดย tsukasaz »
ปรับโค้ดหน่อยครับ
จาก
โค้ด: เลือกทั้งหมด
// จุดทศนิยม
$strlen = strlen($number[1]);
if ($strlen > 0) { // ทศนิยมมากกว่า 2 ตำแหน่ง คืนค่าเป็นตัวเลข
$result .= 'จุด';
for($i=0;$i<$strlen;$i++) {
$result .= $numberstr[(int)$number[1][$i]];
}
} else { // คืนค่าเป็นจำนวนเงิน (บาท)
เป็น
โค้ด: เลือกทั้งหมด
// จุดทศนิยม
$check_decimal = isset($number[1]) ? (int) $number[1] : 0 ;
if ($check_decimal)
{ // ทศนิยมมากกว่า 2 ตำแหน่ง คืนค่าเป็นตัวเลข
$strlen = strlen($number[1]);
$result .= 'จุด';
for ($i = 0; $i < $strlen; $i++)
{
$result .= $numberstr[(int) $number[1][$i]];
}
}else { // คืนค่าเป็นจำนวนเงิน (บาท)
เวลาเรียกใช้ให้ใส่แบบนี้ bathformat(number_format(2033000.00, 2, '.', ','));
The last bug isn't fixed until the last user is dead. (Sidney Markowitz, 1995)
-
Patipat
- PHP Super Hero Member
- โพสต์: 996
- ลงทะเบียนเมื่อ: 10/06/2019 10:12 am
-
-
- 0 ตอบกลับ
- 4221 แสดง
-
โพสต์ล่าสุด โดย mindphp
01/12/2020 2:13 am
-
-
- 0 ตอบกลับ
- 2780 แสดง
-
โพสต์ล่าสุด โดย ewqolf
02/03/2023 9:26 pm
-
-
- 3 ตอบกลับ
- 980 แสดง
-
โพสต์ล่าสุด โดย jamepiyawat
03/07/2019 2:55 pm
-
-
- 3 ตอบกลับ
- 494 แสดง
-
โพสต์ล่าสุด โดย Tookta
10/02/2023 6:53 pm
-
-
- 1 ตอบกลับ
- 887 แสดง
-
โพสต์ล่าสุด โดย mindphp
28/11/2014 11:23 am
-
-
- 0 ตอบกลับ
- 1790 แสดง
-
โพสต์ล่าสุด โดย Pirunsak
12/12/2014 7:30 am
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 58