|
|
|
ช่วยด้วยครับพอดีมีปัญหา php ในระบบไม่คำนวนจุดทศนิยม |
|
|
|
|
|
|
|
ลืมบอกว่า int คือจำนวนเต็ม ไม่มีทศนิยมครับ
|
|
|
|
|
Date :
2017-03-10 14:00:43 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอเสริม
การคำณวนอะไรที่เป็นการเงินหรือต้องการความแม่นยำ ควรใช้ bcmath
+ ใช้ bcadd
- bcsub
x bcmul
÷ bcdiv
√ bcsqrt
ฯลฯ
ตัวอย่างเช่น -100.35+100 ควรจะได้ -0.35
Code (PHP)
$num1 = '-100.35';
$num2 = '100.00';
echo ($num1+$num2)."<br>\n";
echo bcadd($num1, $num2, 9)."<br>\n";
ถ้าเอามาใช้เครื่องหมายบวกธรรมดา อันแรกจะได้ -0.34999999999999 ในขณะที่อันที่สองใช้ bcmath จะถูกต้อง -0.35 (-0.350000000 สำหรับหน่วย 9)
Code (PHP)
$num1 = '100.68';
$num2 = '100.67';
echo ($num1-$num2)."<br>\n";
echo bcsub($num1, $num2, 9)."<br>\n";
ควรได้ 0.01 แต่ว่าได้...
0.010000000000005 ซึ่งมันผิด
0.010000000 อันนี้ถูกแต่กำหนดหน่วยเป็น 9 0 เลยเยอะ
|
ประวัติการแก้ไข 2017-03-10 15:03:46
|
|
|
|
Date :
2017-03-10 15:01:48 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2017-03-10 15:40:00 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|