Hallo! Selamat Datang di Marketplace produk digital, Freelancer terbaik di indonesia (67423 Members, 783 Products, 5280 Topic, 12953 Comments)

Solusi Pembulatan dari penjumlahan Beberapa nilai desimal

Dibuat
Login Terakhir 6 Bulan lalu,
Telah Dilihat 1970 Kali
pagandeng salapang Mengatakan : Sultan Account
  1. maaf masih pemula :)
  2.  
  3. di aplikasi web yg sy buat, ada penjumlahan beberapa nilai decimal pada laporan.
  4. nilai2 desimal tersebut ditampilkan dengan perintah number_format($nilai, 2, ',', '.')
  5.  
  6. yg masalah pada saat total yg juga ditampilkan dgn number_format, ternyata hasilnya tidak sama dgn penjumlahan kalkulator.
  7. bedanya 1 digit desimal yg paling kanan.
  8. mungkin karna pembulatannya.
  9. kira2 bagaimana itu solusi nya?
  10.  
  11. makasih

Ada 4 Jawaban

PHPMU.COM Support
commented on 15 Feb 2018 18:20:01
  1. Assalam, coba share nilai desimal yang ditambahkan tersebut mas...
  2. agar bisa kita cobakan disini, biar lebih cepat kelarnya,.. :)
pagandeng salapang
commented on 15 Feb 2018 23:51:29
  1. dikoding nya spt ini contoh hitungannya:
  2.  
  3. <?php
  4. $x1=2174436;
  5. $x2=$x1*0.4;
  6. echo "x1=$x1 <br>x2=40% dr x1=$x2<br>";
  7. $z1=9*(0.04*$x2);
  8. echo "z1=9x(4% dr x2)=".$z1;
  9. $z2=2*(0.005*$x2);
  10. echo "<br>z2=2x(0.5% dr x2)=".$z2;
  11. $z3=2*(0.005*$x2);
  12. echo "<br>z3=2x(0.5% dr x2)=".$z3;
  13. $z4=2*(0.015*$x2);
  14. echo "<br>z4=2x(1.5% dr x2)=".$z4;
  15. $z5=22*(0.01*$x2);
  16. echo "<br>z5=22x(1% dr x2)=".$z5;
  17. $total=$z1+$z2+$z3+$z4+$z5;
  18. echo "<br>Total z1 s/d z5=".$total;
  19. ?>
  20.  
  21. <br />penjumlahan di atas sdh benar.
  22. <br />
  23. <br />sekarang dgn memberi number_format.
  24. <br />
  25. <?php
  26. $x1=2174436;
  27. $x2=$x1*0.4;
  28. echo "x1=".number_format($x1, 2, ',', '.')."<br>x2=40% dr x1=".number_format($x2, 2, ',', '.')."<br>";
  29. $z1=9*(0.04*$x2);
  30. echo "z1=9x(4% dr x2)=".number_format($z1, 2, ',', '.');
  31. $z2=2*(0.005*$x2);
  32. echo "<br>z2=2x(0.5% dr x2)=".number_format($z2, 2, ',', '.');
  33. $z3=2*(0.005*$x2);
  34. echo "<br>z3=2x(0.5% dr x2)=".number_format($z3, 2, ',', '.');
  35. $z4=2*(0.015*$x2);
  36. echo "<br>z4=2x(1.5% dr x2)=".number_format($z4, 2, ',', '.');
  37. $z5=22*(0.01*$x2);
  38. echo "<br>z5=22x(1% dr x2)=".number_format($z5, 2, ',', '.');
  39. $total=$z1+$z2+$z3+$z4+$z5;
  40. echo "<br>Total z1 s/d z5=".number_format($total, 2, ',', '.');
  41. ?>
  42. <br />kalo dijumlah pake kalkulator, jumlah total: 547.957,86 sedang pake aplikasi 547.957,87
PHPMU.COM Support
commented on 16 Feb 2018 11:21:31
  1. Bukankah yang hitung dari aplikasi sudah benar,
  2. hasilnya memang 547.957,87, bukan 547.957,86,..
PHPMU.COM Support
commented on 16 Feb 2018 11:35:10
  1. Atau coba perbaiki jadi begini saja :
  2. <?php
  3. $x1=2174436;
  4. $x2=$x1*0.4;
  5. echo "x1=".number_format($x1, 2, ',', '.')."<br>x2=40% dr x1=".number_format($x2, 2, ',', '.')."<br>";
  6. $z1=9*(0.04*$x2);
  7. echo "z1=9x(4% dr x2)=".number_format($z1, 2, ',', '.');
  8. $z2=2*(0.005*$x2);
  9. echo "<br>z2=2x(0.5% dr x2)=".number_format($z2, 2, ',', '.');
  10. $z3=2*(0.005*$x2);
  11. echo "<br>z3=2x(0.5% dr x2)=".number_format($z3, 2, ',', '.');
  12. $z4=2*(0.015*$x2);
  13. echo "<br>z4=2x(1.5% dr x2)=".number_format($z4, 2, ',', '.');
  14. $z5=22*(0.01*$x2);
  15. echo "<br>z5=22x(1% dr x2)=".number_format($z5, 2, ',', '.');
  16. $total=$z1+$z2+$z3+$z4+$z5;
  17. function numberFormat($number){
  18. $ex = explode('.', $number);
  19. $data = substr($ex[1], 0,2);
  20. if (substr($ex[1], 2,1)<5){
  21. $hitung = substr($ex[1], 0,2)-1;
  22. }else{
  23. $hitung = substr($ex[1], 0,2)+1;
  24. }
  25. return number_format($ex[0], 0, ',', '.').','.$hitung;
  26. }
  27. echo "<br>Total z1 s/d z5=".numberFormat($total);
  28. ?>
  29.  
  30. // Hasilnya : 547.957,86
Maaf, Untuk Memberikan Komentar Anda Harus Login !!!