Tolong pilih kategori sesuai, jenis posting (diskusi atau bukan) dan sertakan tag/topik yang sesuai seperti komputer, java, php, mysql, dll. Promosi atau posting tidak pada tempatnya akan kami hapus!
- Bagi Anda yang ingin mendaftar, baca link berikut:
http://diskusiweb.com/discussion/50491/how-to-registrasi-diskusiweb-com-baca-ini-terlebih-dahulu
- Cara menyisipkan kode program supaya tampil rapi dan terformat dengan baik di diskusiweb.com: http://www.diskusiweb.com/discussion/50415/cara-menyisipkan-kode-program-di-diskusiweb-com
- Cara posting gambar/image di post Anda: http://www.diskusiweb.com/discussion/47345/cara-menyisipkan-menyertakan-image-pada-posting/p1

solusi penjumlahan bbrp nilai desimal

maaf masih pemula :)

di aplikasi web yg sy buat, ada penjumlahan beberapa nilai decimal pada laporan.
nilai2 desimal tersebut ditampilkan dengan perintah number_format($nilai, 2, ',', '.')

yg masalah pada saat total yg juga ditampilkan dgn number_format, ternyata hasilnya tidak sama dgn penjumlahan kalkulator.
bedanya 1 digit desimal yg paling kanan.
mungkin karna pembulatannya.
kira2 bagaimana itu solusi nya?

makasih

Comments

  • koding nya mana mas ?
  • edited February 15
    dikoding nya spt ini contoh hitungannya:
    <?php
    $x1=2174436;
    $x2=$x1*0.4;
    echo "x1=$x1 <br>x2=40% dr x1=$x2<br>";
    $z1=9*(0.04*$x2);
    echo "z1=9x(4% dr x2)=".$z1;
    $z2=2*(0.005*$x2);
    echo "<br>z2=2x(0.5% dr x2)=".$z2;
    $z3=2*(0.005*$x2);
    echo "<br>z3=2x(0.5% dr x2)=".$z3;
    $z4=2*(0.015*$x2);
    echo "<br>z4=2x(1.5% dr x2)=".$z4;
    $z5=22*(0.01*$x2);
    echo "<br>z5=22x(1% dr x2)=".$z5;
    $total=$z1+$z2+$z3+$z4+$z5;
    echo "<br>Total z1 s/d z5=".$total;
    ?>


    penjumlahan di atas sdh benar.

    sekarang dgn memberi number_format.
    <?php
    $x1=2174436;
    $x2=$x1*0.4;
    echo "x1=".number_format($x1, 2, ',', '.')."<br>x2=40% dr x1=".number_format($x2, 2, ',', '.')."<br>";
    $z1=9*(0.04*$x2);
    echo "z1=9x(4% dr x2)=".number_format($z1, 2, ',', '.');
    $z2=2*(0.005*$x2);
    echo "<br>z2=2x(0.5% dr x2)=".number_format($z2, 2, ',', '.');
    $z3=2*(0.005*$x2);
    echo "<br>z3=2x(0.5% dr x2)=".number_format($z3, 2, ',', '.');
    $z4=2*(0.015*$x2);
    echo "<br>z4=2x(1.5% dr x2)=".number_format($z4, 2, ',', '.');
    $z5=22*(0.01*$x2);
    echo "<br>z5=22x(1% dr x2)=".number_format($z5, 2, ',', '.');
    $total=$z1+$z2+$z3+$z4+$z5;
    echo "<br>Total z1 s/d z5=".number_format($total, 2, ',', '.');
    ?>

    kalo dijumlah pake kalkulator, jumlah total: 547.957,86 sedang pake aplikasi 547.957,87
  • edited February 16
    x1=2174436
    x2=40% dr x1=869774.4
    z1=9x(4% dr x2)=313118.784
    z2=2x(0.5% dr x2)=8697.744
    z3=2x(0.5% dr x2)=8697.744
    z4=2x(1.5% dr x2)=26093.232
    z5=22x(1% dr x2)=191350.368
    Total z1 s/d z5=547957.872

    x1=2.174.436,00
    x2=40% dr x1=869.774,40
    z1=9x(4% dr x2)=313.118,78
    z2=2x(0.5% dr x2)=8.697,74
    z3=2x(0.5% dr x2)=8.697,74
    z4=2x(1.5% dr x2)=26.093,23
    z5=22x(1% dr x2)=191.350,37
    Total z1 s/d z5=547.957,87

    elo ngomongin pembulatan ?

    pembulatan 2 desimal dari 191350.368
    pembulatan 2 desimal dari 547957.872

    mestinya masih inget pelajaran matematika to ?
    https://www.google.co.id/search?q=aturan+pembulatan

    aturannya kan :
    lihat angka setelah digit yg mau dibulatkan ...
    JIKA 5 atau lebih, maka akan dibulatkan ke atas
    JIKA kurang dari 5, maka dibulatkan ke bawah

    atau ada juga yg pake aturan :
    JIKA lebih dari 5, maka akan dibulatkan ke atas
    JIKA kurang dari 5, maka dibulatkan ke bawah
    JIKA tepat 5, angka dapat dibulatkan kebawah atau ke atas.
    0,5 dibulatkan kebawah apabila angka didepannya merupakan angka genap,
    0,5 dibulatkan keatas apabila angka didepannya adalah angka ganjil.

    ya terserah sih mau ikut aturan 1 atau 2
  • edited February 16
    cuma dari yg elo tanyakan ...

    pembulatan 2 desimal dari 191350.36 (8) ... ini 8, 8 > 5, dibulatkan ke atas
    pembulatan 2 desimal dari 547957.87 (2) ... ini 2, 2 < 5, dibulatkan ke bawah

    mau pake aturan 1 atau 2, sama semua seperti itu ...
    hasilnya pasti :

    pembulatan 2 desimal dari 191350.368 ... jadi 191350.37 ... 191.350,37
    pembulatan 2 desimal dari 547957.872 ... jadi 547957.87 ... 547.957,87

    hasil number_format() php elo

    z5=22x(1% dr x2)=191.350,37
    Total z1 s/d z5=547.957,87

    sama ndak ?
    sebenernya yg salah php nya atau kalkulator nya ?

    ... kalo dijumlah pake kalkulator, jumlah total: 547.957,86 ...

    itu angka aslinya : 547957.872

    dari 547957.8 (7) 2 dibulatkan kalkulator jadi 547957.8 (6)
    itu angka 7 lho mas ...
    tanpa melihat 2 nya pun ndak mungkin jadi 6

    0.1 nya ilang ke mana ?
  • edited February 16
    atau mau coba di cek pake excel ?



    kolom A itu angka apa adanya, pake format cell GENERAL
    kolom B itu salinan A, tapi pake format cell ACCOUNTING 2 digit di belakang koma
    kolom C itu salinan A, tapi pake format cell NUMBER 2 digit di belakang koma
    kolom D itu pake formula ROUND() dari A dengan 2 digit di belakang koma

    sama dengan hasil php ?
    atau sama dengan hasil dari kalkulator ?
  • edited February 16
    kecualiiiiii ...

    secara proses elo sudah salah :D

    elo melakukan pembulatan TIDAK PADA HASIL AKHIR
    tapi sepanjang proses elo bulatkan semua
    kalo kaya gini namanya OVER PEMBULATAN
    pembulatan yg berlebihan

    proses elo HARUSNYA menghasilkan ini :
    z1 = 313118.784
    z2 = 8697.744
    z3 = 8697.744
    z4 = 26093.232
    z5 = 191350.368

    jika di total HARUSNYA : 547957.872 ...
    dibulatkan HANYA PADA HASIL AKHIR = 547957.87

    tapi proses yg elo lakukan OVER PEMBULATAN
    z1 = 313118.78 ... sudah dibulatkan
    z2 = 8697.74 ... sudah dibulatkan
    z3 = 8697.74 ... sudah dibulatkan
    z4 = 26093.23 ... sudah dibulatkan
    z5 = 191350.37 ... sudah dibulatkan

    jika di total hasilnya : 547957.86

    ya secara proses bener hasilnya segitu
    tapi angkanya jadi ndak valid
    di ilmu ekonomi, statistik, fisika, matematika, atau ilmu pasti yg mana pun pasti ndak dibenerin melakukan pembulatan berlebihan.
  • makasih kasih banyak mas atas penjelasannya yg komplit :)
    sy ambil pembulatan di akhir sj spy tdk over pembulatan.
Sign In or Register to comment.