ท่านลองดูโปรแกรมด้านล่าง

Live Demo

echo number_format( 16383.815 , 2 ) ; //16,383.82
echo number_format( 20971.815 , 2 ) ; //20,971.82
 
echo number_format( 16384.815 , 2 ) ; //16,384.81
echo number_format( 20970.815 , 2 ) ; //20,970.81

เห็นความแปลกอะไรหรือเปล่า?

สิ่งที่ผมเห็นคือ 2 คำสั่งบน มันปัดขึ้น แต่ 2 คำสั่งล่าง มันไม่ปัด

ผมทดลองตัวเลขอยู่เป็นหลายชั่วโมง จนได้ข้อสรุปว่า

ตั้งแ่ต่ 16383 ลงไปมันจะปัดทศนิยมขึ้นให้ และ ตั้งแต่ 20971 ขึ้นไป มันก็ปัด

ส่วนตัวเลขที่อยู่ในช่วง 16384 – 20970 มันไม่ยอมปัดขึ้นให้

เกิดอะไรขึ้นกับตัวเลขที่อยู่ในช่วงนี้

ไม่เพียงแต่ฟังก์ชั่น number_format เท่านั้น แต่ฟังก์ชั่น round ก็เป็นเหมือนกัน

เพราะฉะนั้น ท่านที่เขียนโปรแกรม ที่เกี่ยวข้องกับตัวเลข โปรดระวังตัวเลขในช่วงนี้ให้ดี