Devdit
 

ตัวเลขหลังใช้ number_format บวกกันไม่ได้ แก้ไขอย่างไร

1.1K

ภาษา 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
แก้ไข 2 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ