Eredmény: 1 - 5 (5) összesen

Téma: PHP változók összeadása

  1. #1
    Laz
    Laz nem elérhető
    Új tag
    Csatlakozott
    17-03-21
    Hozzászólás
    3
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás PHP változók összeadása

    van egy mysql tablam fizetesekkel. soronkent listazom, s minden sorban osszegzem az addig listazottakat, tehat osszesitem az addig listazott fizeteseket. valami oknal fogva kibukott egy sor ahol nem ad ossze jol. epp -380nal jar es a kovetkezo tetel 380 de a vegeredmeny nem lesz 0 hanem
    -5.6843418860808E-14

    ennel az egy sornal nem ad ossze jol, de csak akkor ha a hozzaadando szam 370 es 390 kozott van. mutatok par variaciot:

    sum= -380 + 380.00=-5.6843418860808E-14
    sum= -380 + 381.00=0.99999999999994
    sum= -380 + 390.00=9.9999999999999
    sum= -380 + 391.00=11
    sum= -380 + 378.00=-2.0000000000001
    sum= -380 + 371.00=-9.0000000000001
    sum= -380 + 370.00=-10

    igazabol a kod nagyon egyszeru:
    $balance = 0;
    echo '<br>sum= '.$balance.' + '.$row_Rs_paym['paymAmount'].'=';
    $balance += $row_Rs_paym['paymAmount'];
    echo $balance;


    a $row_Rs_paym['paymAmount'] egy tomb, ide van betoltve az osszes fizetes a mysqlbol es ezt egy ciklussal veszem ki egyessevel.



  2. #2
    Laz
    Laz nem elérhető
    Új tag
    Csatlakozott
    17-03-21
    Hozzászólás
    3
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: PHP változók összeadása

    sum= 0 + -3500.00=-3500
    sum= -3500 + 1600.00=-1900
    sum= -1900 + 1350.00=-550
    sum= -550 + 550.00=0
    sum= 0 + -3500.00=-3500
    sum= -3500 + 2745.00=-755
    sum= -755 + 205.00=-550
    sum= -550 + 550.00=0
    sum= 0 + -3500.00=-3500
    sum= -3500 + 2745.00=-755
    sum= -755 + 205.00=-550
    sum= -550 + 550.00=0
    sum= 0 + -3500.00=-3500
    sum= -3500 + 2603.56=-896.44
    sum= -896.44 + 41.44=-855
    sum= -855 + 205.00=-650
    sum= -650 + 100.00=-550
    sum= -550 + 550.00=0
    sum= 0 + -3500.00=-3500
    sum= -3500 + 2950.00=-550
    sum= -550 + 488.00=-62
    sum= -62 + 62.00=0
    sum= 0 + -3330.00=-3330
    sum= -3330 + 2908.56=-421.44
    sum= -421.44 + 41.44=-380
    sum= -380 + 380.00=-5.6843418860808E-14
    sum= -5.6843418860808E-14 + -3500.00=-3500
    sum= -3500 + 160.00=-3340
    sum= -3340 + 600.00=-2740



  3. #3
    Laz
    Laz nem elérhető
    Új tag
    Csatlakozott
    17-03-21
    Hozzászólás
    3
    Begyűjtött 0 köszönetet
    0 hozzászólásával

    Alapbeállítás re: PHP változók összeadása

    lehet latni hogy minden sornal ok, csak ott az utolsoknal van az a -380 + 380 ahol nem mukodik jol



  4. #4
    Törzsvendég wzol logója
    Csatlakozott
    14-05-31
    Hozzászólás
    116
    Begyűjtött 35 köszönetet
    31 hozzászólásával

    Alapbeállítás re: PHP változók összeadása

    Én tennék egy próbát ezzel: PHP: floatval - Manual azaz:

    Kód:
    $balance += floatval($row_Rs_paym['paymAmount']);




  5. #5
    Bölcs earnnet logója
    Csatlakozott
    12-08-15
    Hely
    Budapest
    Hozzászólás
    1.539
    Begyűjtött 698 köszönetet
    491 hozzászólásával

    Alapbeállítás re: PHP változók összeadása

    Szia!

    A lebegőpontos számábrázolás nem pontos. A legjobb megoldás, ha az adatbázisodban átírod a sémát úgy, hogy DECIMAL-t használjon annyi tizedesjeggyel, ami az adott pénznemhez kell. A forintnál eldöntheted, hogy akarsz-e tizedesjegyet használni a fillér miatt, vagy nem. Lényegtelen.

    Egyenleget nem tárolunk floatban.



Könyvjelzők

Hozzászólás szabályai

  • Új témákat nem hozhatsz létre
  • Válaszokat nem küldhetsz
  • Fájlokat nem csatolhatsz
  • A hozzászólásaidat nem módosíthatod
  •