Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Division by zero, jak zablokować
Forum PHP.pl > Forum > Przedszkole
morman
Mam taki blok obliczeń:
  1.  
  2. $m=($a*$e*$i)+($d*$h*$c)+($g*$b*$f)-($g*$e*$c)-($a*$h*$f)-($d*$b*$i);
  3. $n=($j*$e*$i)+($d*$h*$l)+($g*$k*$f)-($g*$e*$l)-($j*$h*$f)-($d*$k*$i);
  4. $o=($a*$k*$i)+($j*$h*$c)+($g*$b*$l)-($g*$k*$c)-($a*$h*$l)-($j*$b*$i);
  5. $p=($a*$e*$l)+($d*$k*$c)+($j*$b*$f)-($j*$e*$c)-($a*$k*$f)-($d*$b*$l);
  6. $t=$m;
  7. $u=$n;
  8. $w=$o;
  9. $x=$p;
  10. $q=$u/$t;
  11. $r=$w/$t;
  12. $s=$x/$t;


I czasami gdy dochodzi do dzielenia przez zero wyskakuje mi błąd:
Kod
Warning: Division by zero in C:\Program Files\WebServ\httpd\Praca\obliczenia\wyznacznik.php on line 26

Co oczywiście się zgadza i dalsze obliczenia nie mają sensu dlatego aplikacja wyrzuca coś takiego:


Uploaded with ImageShack.us
I teraz pytanie co mam zrobić aby nie wyskakiwał mi ten błąd w wynikach?
nospor
No to zanim podzielisz przez jakąś zmienną to sprawdz najpierw czy ta zmienna nie jest przypadkiem zerem. Czego w tym nie rozumiesz?

Do sprawdzenia sluzy IF
nospor
@jareeny chyba nie sugerujesz by morman wyłączył poprostu wyswietlanie tych bledow?
jesli sugerujesz: morman nie sluchaj go bo to najgorsza rzecz jaką możesz zrobic. masz po prostu sprawdzac czy przypadkiem nie dzielisz przez 0 i jesli tak to odpowiednio zareagowac.
teka
zastanawia mnie dlaczego od razu nie przypiszesz tych wyliczeń do zmiennych $t, $u, $w, $x??
  1. $t=($a*$e*$i)+($d*$h*$c)+($g*$b*$f)-($g*$e*$c)-($a*$h*$f)-($d*$b*$i);
  2. $u=($j*$e*$i)+($d*$h*$l)+($g*$k*$f)-($g*$e*$l)-($j*$h*$f)-($d*$k*$i);
  3. $w=($a*$k*$i)+($j*$h*$c)+($g*$b*$l)-($g*$k*$c)-($a*$h*$l)-($j*$b*$i);
  4. $x=($a*$e*$l)+($d*$k*$c)+($j*$b*$f)-($j*$e*$c)-($a*$k*$f)-($d*$b*$l);

z Twojego przykładu wynika, że dzielisz tylko przez $t, najprościej sprawdzić czy jest ona różna od zera i wtedy dopiero wykonywać dzielenie np. tak
  1. if($t!=0) {
  2. $q=$u/$t;
  3. $r=$w/$t;
  4. $s=$x/$t;
  5. } else {
  6. echo 'Treść komunikatu gdy $t=0';
  7. }

jareeny
nosporku, ja bardzo dobrze wiem, że nie powinno się wyłączać wyświetlania błędów, ale on po prostu pyta jak ma zablokować te błędy, więc mu podaje przykładowe rozwiązanie.

oczywiście, najlepiej sprawdzać czy mianownik jest równy zero i wtedy reagowac...
nospor
@jareeniczku kochany jak to dobrze ze całe forum nie kieruje się Twoją logiką.... smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.