![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 31.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Poniżej przedstawiam fragment kodu, gdzie mam zapisane warunki, które działają poprawnie. Wyświetlają mi to czego oczekuję, ale jednocześnie pojawiają mi się komunikaty o błędach: Warning: Division by zero in D:\www\apache\htdocs\pkj10_wyniki.php on line 175 Warning: Division by zero in D:\www\apache\htdocs\pkj10_wyniki.php on line 180 Co oznacza komunikat to wiem. Problem polega na tym, że taka sytuacja może mieć miejsce w moich wyliczeniach i czasem wartość musi być podzielona przez 0 Jak to poprawić, by nie wyświetlało informacji o błędzie? Fragment kodu:
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat i czasem wartość musi być podzielona przez 0 Ta reforma oświatowa jest poprostu straszna......Nawet tego wierszyka cię w szkole nie nauczyli Pamiętaj cholero nie dziel przez zero ? Nie wolno dzielic przez 0 i już. Zanim zaczniesz dzielic sprawdz czy to jest 0 czy nie i jak jest to 0 to poprostu nie dziel. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 31.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Wiesz co, może trochę mniej złośliwości!!!!
Chyba wyraźnie napisałem, że czasem tak wychodzi i nie chodzi tu o znajomość zasad matematyki, bo je znam!!! A nie będę Ci tłumaczył dlaczego tak musi być, że czasem będzie dzielone przez 0. Zadałem proste pytanie: jak to zrobić by nie wyświetlało mi komunikatu o błędzie? Jak to sprawdzić czy jest 0? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat że czasem tak wychodzi.....A nie będę Ci tłumaczył dlaczego tak musi być, że czasem będzie dzielone przez 0. ![]() ![]() jak sprawdzić? Normalnie? Nie umiesz IF użyć? if ($cos == 0) echo 'nie dziele'; else echo 'dziele'; Proszę cię.... -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 18 Dołączył: 7.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Poza tym dlaczego w każdym warunku wykonujesz to samo obliczenie? Wykonaj je raz i z głowy.
Zobrazowanie tego o czym pisał nospor.
i zamiast
wpisuj w warunkach
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 118 Pomógł: 6 Dołączył: 25.10.2010 Skąd: Radzyn Podlaski Ostrzeżenie: (0%) ![]() ![]() |
Komputery, informatyka, programowanie są oparte na matematyce, więc ich podstawą są zasady matematyki.
Nie zabieraj się za programowanie jeżeli dopuszczasz warunkowe dzielenie przez 0. Jest pewien matematyczny problem: zero do każdej potęgi to zero, ale każda liczba do zerowej potęgi to jeden. Ile to jest zatem zero do potęgi zero. Nie da się tego rozwiązać stosując klasyczną definicję zera (zero czyli nic). Trzeba przyjąć, że zero to tak w zasadzie liczba skrajnie mała, dążąca do zera. W tym wypadku dzielenie przez 0 byłoby możliwe, ale trzeba to zapisać if ($cos == 0) { $wynik = 'nieskonczonosc' } tutaj jeszcze kwestia znaku tego zera dochodzi. -------------------- Michal Zarobkiewicz Photographic Gallery |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 31.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ale tłumacze Ci, że musi się to dzielenie odbyć może na prostym przykładzie Ci zademonstruję
wartoscA wartoscB wartoscC 4 8 13 0 0 5 6 5 11 Takie wyniki zostają prowadzone do bazy i wg mojego if wartoscC dzielimy na wartoscB i czasem jest 0. ( opis w wielkim skrócie) Nie chodzi więc by nie dzielić, ale by to zrobić tak by nie wyświetlało błędu. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@ethann akurat licznik może być równy 0 więc nie:
if($row['wartosc_pk'] != 0 && $row['pk_wyn'] != 0) a: if($row['wartosc_pk'] != 0) Nie popadajmy w skrajnośći ![]() Cytat Nie chodzi więc by nie dzielić, ale by to zrobić tak by nie wyświetlało błędu. Ty w ogole nie czytasz co się do ciebie pisze.... Przecież masz to już napisane w 3 postach!
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 31.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Poza tym dlaczego w każdym warunku wykonujesz to samo obliczenie? Wykonaj je raz i z głowy. Zobrazowanie tego o czym pisał nospor.
i zamiast
wpisuj w warunkach
Ale tam sa różne kolory wyświetlania i ikonki przy wynikach w zależności od tego jaki wynik wychodzi. Dlatego rozbiłem to na 3 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 18 Dołączył: 7.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
@nospor
zgadzam się, ale po co ma wykonywać obliczenia, skoro i tak wynikiem będzie 0 przy liczniku równym 0 ![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 587 Pomógł: 131 Dołączył: 8.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Cytat Jak to poprawić, by nie wyświetlało informacji o błędzie? Spróbuj tak ![]() -------------------- Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore
I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat ale po co ma wykonywać obliczenia, skoro i tak wynikiem będzie 0 przy liczniku równym 0 Ja to wiem i ty to wiesz, ale po co mu komplikować bardziej ten "strasznie złożony" kod? Tego nie potrafi zrozumieć to po co mu jeszcze dowalać dodatkowe warunki? I mówię to bez złośliwości aquarius1978. Przetraw co tu ci napisano a nie strzelasz posty jeden za drugim bez żadnego zastanowienia. To są podstawy.@rocktech.pl no za takie wskazówki to normalnie ban się nalezy....
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 31.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ludzie normalnie można przez Was oszaleć.
Tworząc post podałem kod który posiadam i proszę tylko o pomoc jak to zrobić, w którym miejscy to wstawić by poprawnie działało. A Wy ciągle dyskusja na temat 0, że się nie dzieli itp. Niech ktoś poprawi mój kod tak by tego błędu nie było i to wszystko. O nic więcej nie proszę. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 18 Dołączył: 7.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ale tam sa różne kolory wyświetlania i ikonki przy wynikach w zależności od tego jaki wynik wychodzi. Dlatego rozbiłem to na 3 Rozumiem, ale po co 3x to samo działanie matematyczne? Procesor wykonuje 3 obliczenia, zamiast jednego. Dlatego najpierw oblicz, a później użyj w warunku.
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 31.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Ja to wiem i ty to wiesz, ale po co mu komplikować bardziej ten "strasznie złożony" kod? Tego nie potrafi zrozumieć to po co mu jeszcze dowalać dodatkowe warunki? I mówię to bez złośliwości aquarius1978. Przetraw co tu ci napisano a nie strzelasz posty jeden za drugim bez żadnego zastanowienia. To są podstawy. Dlatego właśnie piszę o pomoc, gdybym sam wiedział jak to zrobić to bym nie prosił. Wiesz nie każdy jest taki obeznany jak Ty. I nie strzelam postów. Ja zadałem konkretne pytanie, a nie otrzymałem konkretnej odpowiedzi tylko ... |
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat a nie otrzymałem konkretnej odpowiedzi tylko ... Konkretnych odpowiedzi dostałeś masę. Ale ty oczekujesz aż ktoś zrobi wszystko co do joty za ciebie. Zero wkładu własnego....
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 31.03.2012 Ostrzeżenie: (0%) ![]() ![]() |
Oto właśnie mi ethann chodziło, przynajmniej jedna konkretna osoba.
Działa. Dziękuję. Temat do zamknięcia. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 19:09 |