ฟังก์ชั่นของ PHP แสดงสกุลเงิน

คุณสามารถใช้ฟังก์ชั่น number_format ใน PHP เพื่อแปลงจำนวนเงินในบาทเป็นรูปแบบภาษาอังกฤษ โดยฟังก์ชั่น number_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 สามารถดูเอกสารได้ที่ลิงก์ต่อไปนี้:

หมายเหตุ: ฟังก์ชั่น 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;
^