วันพุธที่ 14 มกราคม พ.ศ. 2558

PHP - float round (float x)

float round (float x)
ปัดเศษเลขทศนิยมโดยปัดขึ้นหรือลงดูจากค่าทศนิยม 0.5 ผลลัพธ์ได้เลข floating point
ที่มีเศษทศนิยมเป็น x.0

เช่น

round (4.4999) ได้ผลลัพธ์ 4.0
round (4.5) ได้ผลลัพธ์ 5.0
round (-4.4999) ได้ผลลัพธ์ -4.0
round (-4.5) ได้ผลลัพธ์ -5.0

ฟังก์ชันเหล่านี้จะทำการปัดเศษทศนิยมให้เหลือแต่จำนวนเต็มแต่ยังคงได้รับผลเป็นตัวเลขชนิด
floating point เนื่องจากหากใช้ integer อาจไม่สามารถรับข้อมูลขนาดใหญ่ที่มาจากการปัดเศษของ
float ได้หากต้องการให้ปัดตัวเลขตามจำนวนหน่วยของหลักเลขที่ต้องการ เช่น ปัดเลขทศนิยมหลักที่
3 (ปัดให้เหลือเศษเพียง 2 หลัก) ตย. 45.1225 ปัดเศษทิ้งเป็น 45.12 หรือปัดขึ้นเป็น 45.13 ทำได้โดย
ceil ($x/0.01)*0.01 หากต้องการปัดเศษให้เหลือเลขหลังจุด 4 หลักก็จะเป็น ceil ($x/0.0001)
*0.0001 หากต้องการปัดเลขจำนวนเต็มให้เป็นหลักร้อย เช่น 35640 หากปัดขึ้นจะเป็น 35700
สามารถใช้ expression ceil($x/100)*100 ซึ่งหากจะเขียนเป็น expression แบบทั่วไปสร้างเป็น
function ใหม่ได้

เป็น

function ceil2digit ($x,$digit=0) {
$c = pow(10,$digit);
return ceil($x/$c) * $c;
}

โดยที่มีการส่ง argument 2 ตัวได้แก่ $x เป็นค่าที่ต้องการปัดเลข และ $digit จำนวนหลัก
เลขที่ต้องการ เช่นหากจะปัดเลขให้เป็นหลักร้อยคือปัดเลขจำนวนเต็มที่มีเลข 0 ตรงท้าย 2 หลัก จะส่ง
$digit เป็น 2 หากจะปัดเป็นหลักหมื่นคือปัดเลขจำนวนเต็มขึ้น 4 หลัก กำหนด $digit เป็น 4 ในกรณี
ปัดเศษเศษทศนิยมจะกำหนดจำนวนหลักเป็นเลขลบ เช่น หากต้องการปัดเลขเศษทศนิยมให้เหลือ 2
หลัก กำหนด $digit เป็น -2 หากจะปัดเลขเศษทศนิยมให้เหลือ 5 หลัก กำหนด $digit เป็น -5 เป็นต้น
ตัวอย่างการเรียกใช้ฟังก์ชัน ceil2digit( ) แสดงได้ดังนี้

<?
echo ceil2digit(3456,2); // 3500
echo ceil2digit(1401,2); // 1500
echo ceil2digit(1000001,5); // 1100000
echo ceil2digit(356.136589,-4); //356.1366
?>

ไม่มีความคิดเห็น:

แสดงความคิดเห็น