การจัดรูปแบบตัวเลขทศนิยม 2 ตำแหน่ง
ใน PHP ใช้ฟังก์ชัน number_format() สำหรับจัดรูปแบบตัวเลขให้มีทศนิยมตามที่ต้องการ พร้อมคั่นหลักพันได้ ใน MySQL ใช้ FORMAT() หรือ ROUND() แทน
PHP: number_format()
<?php $number1 = 10.3423; $number2 = 10; $result1 = number_format($number1, 2); // 10.34 $result2 = number_format($number2, 2); // 10.00 echo $result1 . '<br>'; echo $result2; ?>
ผลลัพธ์ PHP
10.34 10.00
ไวยากรณ์ number_format(): number_format(float $num, int $decimals = 0, string $dec_point = '.', string $thousands_sep = ','): string
MySQL: FORMAT() และ ROUND()
-- FORMAT: คืนค่า STRING พร้อมคั่นหลักพัน (Locale-aware) SELECT FORMAT(10.3423, 2); -- '10.34' SELECT FORMAT(10, 2); -- '10.00' SELECT FORMAT(1234567.89, 2); -- '1,234,567.89' -- ROUND: คืนค่า NUMBER (ไม่คั่นหลักพัน) SELECT ROUND(10.3423, 2); -- 10.34 SELECT ROUND(10, 2); -- 10.00 -- TRUNCATE: ตัดทิ้งทศนิยมเกิน (ไม่ปัดเศษ) SELECT TRUNCATE(10.3499, 2); -- 10.34
ความแตกต่างสำคัญ:
| ฟังก์ชัน | คืนค่า | คั่นหลักพัน | การปัดเศษ |
|---|---|---|---|
| number_format (PHP) | String | ได้ (กำหนดเอง) | ปัดเศษ |
| FORMAT (MySQL) | String | ได้ (ตาม Locale) | ปัดเศษ |
| ROUND (MySQL) | Number | ไม่ได้ | ปัดเศษ |
| TRUNCATE (MySQL) | Number | ไม่ได้ | ตัดทิ้ง (ไม่ปัด) |
แนะนำ: คำนวณ/เก็บข้อมูลเป็นตัวเลข (DECIMAL) จัดรูปแบบแสดงผลเฉพาะตอน Output ด้วย PHP หรือ FORMAT()