ฟังก์ชั่นของ PHP แสดงสกุลเงิน
คุณสามารถใช้ฟังก์ชั่น number_format ใน PHP เพื่อแปลงจำนวนเงินในบาทเป็นรูปแบบภาษาอังกฤษ โดยฟังก์ชั่น number_format จะรับพารามิเตอร์สองตัว คือ จำนวนเงินและจำนวนหลักทศนิยม และจะคืนค่าเป็นสตริงที่แสดงจำนวนเงินที่แปลงแล้ว
จากตัวอย่าง จะเห็นว่าฟังก์ชั่น number_format จะทำการปัดขึ้นทศนิยมหลักที่เกินกว่าที่ต้องการนะครับ เข่น 0.555 ถ้าต้องการสองหลักจะถูกปัดเป็น 0.56
ถ้าคุณต้องการแปลงจำนวนเงินบาทเป็นสกุลเงินอื่น ๆ นอกเหนือจากภาษาอังกฤษ คุณสามารถใช้ฟังก์ชั่น money_format ใน PHP ซึ่งจะแปลงจำนวนเงินในบาทเป็นรูปแบบสกุลเงินของประเทศที่กำหนด โดยฟังก์ชั่น money_format จะรับพารามิเตอร์สองตัว คือ รูปแบบของสกุลเงิน และจำนวนเงิน และจะคืนค่าเป็นสตริงที่แสดงจำนวนเงินที่แปลงแล้ว
หมายเหตุ: ฟังก์ชั่น money_format จะทำงานเฉพาะในระบบปฏิบัติการที่ใช้ฟังก์ชั่น setlocale ในการตั้งค่าของสกุลเงิน ดังนั้น คุณอาจจะต้องเรียกใช้ setlocale ก่อนเรียกใช้ money_format เพื่อกำหนดสกุลเงินที่ต้องการแปลง
// ผลลัพท์ 1,234,567.00
echo number_format(1234567, 2)."\n";
// ผลลัพท์ 1,234,567.55
echo number_format(1234567.55, 2)."\n";
// ผลลัพท์ 1,234,567.56
echo number_format(1234567.555, 2)."\n";
จากตัวอย่าง จะเห็นว่าฟังก์ชั่น number_format จะทำการปัดขึ้นทศนิยมหลักที่เกินกว่าที่ต้องการนะครับ เข่น 0.555 ถ้าต้องการสองหลักจะถูกปัดเป็น 0.56
ถ้าคุณต้องการแปลงจำนวนเงินบาทเป็นสกุลเงินอื่น ๆ นอกเหนือจากภาษาอังกฤษ คุณสามารถใช้ฟังก์ชั่น money_format ใน PHP ซึ่งจะแปลงจำนวนเงินในบาทเป็นรูปแบบสกุลเงินของประเทศที่กำหนด โดยฟังก์ชั่น money_format จะรับพารามิเตอร์สองตัว คือ รูปแบบของสกุลเงิน และจำนวนเงิน และจะคืนค่าเป็นสตริงที่แสดงจำนวนเงินที่แปลงแล้ว
$amount = 1234567.89;
// แปลงเป็นรูปแบบสกุลเงินของประเทศสหรัฐอเมริกา
$english_format_number = money_format('%(#10n', $amount);
echo $english_format_number;
// ผลลัพธ์: ,234,567.89
หมายเหตุ: ฟังก์ชั่น money_format จะทำงานเฉพาะในระบบปฏิบัติการที่ใช้ฟังก์ชั่น setlocale ในการตั้งค่าของสกุลเงิน ดังนั้น คุณอาจจะต้องเรียกใช้ setlocale ก่อนเรียกใช้ money_format เพื่อกำหนดสกุลเงินที่ต้องการแปลง
$amount = 1234567.89;
// กำหนดสกุลเงินของประเทศสหรัฐอเมริกา
setlocale(LC_MONETARY, 'en_US');
// แปลงเป็นรูปแบบสกุลเงินของประเทศสหรัฐอเมริกา
$english_format_number = money_format('%(#10n', $amount);
echo $english_format_number;
// ผลลัพธ์: ,234,567.89
หากคุณต้องการรายละเอียดเพิ่มเติมเกี่ยวกับฟังก์ชั่น number_format และ money_format สามารถดูเอกสารได้ที่ลิงก์ต่อไปนี้:
- number_format: https://www.php.net/manual/en/function.number-format.php
- money_format: https://www.php.net/manual/en/function.money-format.php
หมายเหตุ: ฟังก์ชั่น money_format มีประสิทธิภาพต่ำกว่า number_format และมีการใช้งานไม่สามารถควบคุมได้อย่างมีประสิทธิภาพ เนื่องจากฟังก์ชั่นนี้ขึ้นอยู่กับการตั้งค่าของระบบ และมีข้อจำกัดในการใช้งานบางระบบ ดังนั้น คุณควรใช้ number_format แทนถ้าต้องการการแปลงจำนวนเงินที่มีประสิทธิภาพสูงขึ้น และมีการควบคุมได้อย่
$amount = 1234567.89;
// แปลงเป็นจำนวนเงิน ทศนิยม 2 ตำแหน่ง
$formatted_amount = number_format($amount, 2);
// สัญลักษณ์สกุลเงิน (ดอลล่าร์)
$currency_symbol = '$';
// ผลลัพธ์: $ 1,234,567.89
echo $currency_symbol . ' ' . $formatted_amount;