Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Division by zero, jak zablokować
morman
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 21.07.2008

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


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:
(IMG:http://img96.imageshack.us/img96/3858/macierz.th.jpg)

Uploaded with ImageShack.us
I teraz pytanie co mam zrobić aby nie wyskakiwał mi ten błąd w wynikach?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
teka
post
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 2
Dołączył: 30.04.2010

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


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. }

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: 11.10.2025 - 14:53