บทความด้านคอมพิวเตอร์

บทความ, องค์ความรู้, การทำเว็บไซต์, ทำโปรแกรม

ค้นหา และศึกษาบทความด้านคอมพิวเตอร์ การเขียนเว็บไซต์ ทำเว็บไซต์ ทำโปรแกรม ทำโปรแกรมบนมือถือ ออกแบบเว็บไซต์ การเขียนโปรแกรม การออกแบบเว็บไซต์ ฐานข้อมูล รวมไปถึงข่าวแวดวง IT, Computer และบทความต่าง ๆ ที่ถูกคัดสรรมาอย่างดี ด้วยเนื้อหาที่สดใหม่ กระชับ และอ่านเข้าใจง่าย ซึ่งจะทำให้คุณสามารถที่จะแก้ไขปัญหาต่าง ๆ จากบทความ และองค์ความรู้ที่ทางเราเลือกมาให้ โดยบทความทุกบทความถูกเขียนขึ้นใหม่ ในเรื่องต่าง ๆ เพื่อนำเสนอมุมมองใหม่ ๆ ให้กับผู้อ่านทุกคน


ประเภทบทความ
บทความด้านคอมพิวเตอร์

    number_format PHP การป้องกันการคำนวณที่ผิดพลาด

    บทความวันที่ 21 มีนาคม 2556

    บทความนี้จะขอกล่าวถึงคำสั่ง number_format กับการป้องกันการคำนวณที่ผิดพลาด ซึ่งคำสั่ง number_format นั้นเป็นคำสั่งสำหรับการกำหนด Format ให้กับข้อมูลตัวเลขที่ต้องการ ซึ่งหลาย ๆ ครั้งอาจมีการเขียนโปรแกรมเพื่อปัดทศนิยมก่อนแล้วนำมาบวกกัน แต่เมื่อใช้คำสั่ง number_format แล้วนำมาบวกกันนั้นกลับไม่ได้ค่าตามที่เราต้องการ ซึ่งเกิดจากสาเหตุอะไรมาดูกันครับ

     

    ตัวอย่างการเขียนโปรแกรมที่อาจทำให้เกิดการคำนวณที่ผิดพลาด

    <?
    
    	$price = 56985.304546;
    	$discount = 5412.36;
    	
    	echo "price = ".$price."<br/>";
    	echo "discount = ".$discount."<br/>";
    	$price = number_format( $price, 2 );
    	$discount = number_format( $discount, 2 );
    	$total = $price+$discount;
    	echo $price." + ".$discount." = ".$total;
    	
    ?>
    

     

    ผลลัพธ์

    price = 56985.304546
    discount = 5412.36
    56,985.30 + 5,412.36 = 61
    

     

    จากผลลัพธ์ที่ออกมานั้นจะเห็นว่าผิดพลาดซึ่งไม่เป็นไปตามที่เราคาดการเอาไว้ ซึ่งปัญหาเกิดจากตัวแปรที่ถูกใช้คำสั่ง number_format นั้นโดยปกติจะมีการติดเครื่องหมาย comma (เครื่องหมายลูกน้ำ) ระหว่างตัวเลขมาด้วย ซึ่งทำให้ไม่สามารถนำไปคำนวณได้นั้นเอง

     

    วิธีการแก้ปัญหา

    1. เปลี่ยนจากการใช้คำสั่ง number_format( value, 2 ) มาเป็น number_format( value, 2, '.', '' )

    2. ใช้คำสั่ง str_replace แทน comma (เครื่องหมายลูกน้ำ) ให้เป็นอักษรว่าง เช่น str_replace( ',', '', value ) 


    อ่านเนื้อหาอื่นเพิ่มเติมฟรี ได้ที่
    Devdit - พบคำตอบด้านไอทีและทำตามง่ายๆ



    คำค้นหา number_format PHP การป้องกันการคำนวณที่ผิดพลาด, รับเขียนเว็บไซต์, รับสอนเขียนโปรแกรม