Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

วิธีแสดงทศนิยม 2 ตำแหน่งใน MySQL/PHP

การจัดรูปแบบตัวเลขทศนิยม 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()