ภาษา PHP ใช้คำสั่ง number_format เพื่อกำหนดให้ตัวเลขมีทศนิยม 2 ตำแหน่ง แต่พอหลังจากใช้คำสั่ง number_format ไม่สามารถนำตัวเลขทั้ง 2 มาบวกกันได้ พอบวกแล้วได้ผลลัพธ์ผิด โค้ดตัวอย่างตามด้านล่าง อยากทราบวิธีแก้ไข
<?php
$a = number_format( 5000, 2 );
$b = number_format( 1000, 2 );
echo "{$a} + {$b} = ".($a+$b);
?>
5,000.00 + 1,000.00 = 6
วิธีแก้ไข
ปัญหานี้เกิดจากมีเครื่องหมายคอมม่า (,) ในตัวเลข ทำให้ตัวเลขทั้ง 2 เป็นข้อความไม่สามารถนำมาบวกกันได้ แนะนำให้บวกตัวเลขก่อนใช้คำสั่ง number_format หรือลบเครื่องหมายคอมม่าก่อนบวกตัวเลข สามารถเขียนโปรแกรมได้ดังนี้
<?php
$a = number_format( 5000, 2 );
$b = number_format( 1000, 2 );
$sum = str_replace(",", "",$a) - str_replace(",", "",$b);
echo "{$a} + {$b} = ".number_format( $sum, 2 );
?>
ผลลัพธ์
5,000.00 + 1,000.00 = 4,000.00