Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Poważny błąd obliczeń w PHP 5.x, PHP nie umie dodawać licz ujemnych w pętli
icemanwlkp
post
Post #1





Grupa: Zarejestrowani
Postów: 50
Pomógł: 1
Dołączył: 29.09.2010

Ostrzeżenie: (0%)
-----


  1. $historia = Array('1195.61','-400.00','-200.00','-200.00','-395.61');
  2. $brutto = 0;
  3. foreach($historia as $poz)
  4. {
  5. echo $brutto.' + '.$poz.' = ';
  6. $brutto = $brutto + $poz;
  7. echo $brutto.'<BR>';
  8. }


Wynik :

0 + 1195.61 = 1195.61
1195.61 + -400.00 = 795.61
795.61 + -200.00 = 595.61
595.61 + -200.00 = 395.61
395.61 + -395.61 = -1.13686837722E-13 - co to za brednie ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
icemanwlkp
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 1
Dołączył: 29.09.2010

Ostrzeżenie: (0%)
-----


Wiem co to jest liczba zmiennoprzecinkowa i wiem jak rozwiązać ten problem , żeby wynik wyszedł zero , pytam się tylko dlaczego w ostatnim wierszu wynik nie wynosi zero !

Błąd powstaje w tej lini :
  1. $brutto = $brutto + $poz;


nie działa również jeśli zrobimy tak:
  1. $brutto = (float)$brutto + (float)$poz;


nie działa również jeśli zrobimy tak:
  1. $brutto = floatvar($brutto) + floatvar($poz);


nie działa również jeśli zrobimy tak:
  1. $brutto = $brutto + round($poz,2);


rozwiązanie :
  1. $brutto = round($brutto,2) + $poz;


DLACZEGO TAK (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) (IMG:style_emoticons/default/questionmark.gif) MUSI BYĆ !

Ten post edytował icemanwlkp 18.12.2010, 13:00:04
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 08:59