Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Reszta z dzielenia, dlaczego ujemna?
bartisz
post 1.12.2009, 17:04:50
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 1
Dołączył: 29.10.2007

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


witam
napisałem taki prosty algorytm:
  1. <?php
  2. $x=-7;
  3. for($i=-9;$i<=9;$i++){
  4. $wynik=$i%3;
  5. echo "Dla ".$i." reszta ".$wynik."<br>";
  6. }
  7. ?>


Przyjmuje się, że reszta powinna mieć znak taki jak dzielnik. Przy liczbach dodatnich wszystko się zgadza, jednak przy ujemnych pojawia się problem, ponieważ reszta jest ujemna. Dlaczego tak jest? Błąd interpretera?

proszę o pomoc
pozdrawiam
Go to the top of the page
+Quote Post
darko
post 1.12.2009, 17:10:19
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Wynika to z działania operatora modulo

Cytat
Note: Remainder $a % $b is negative for negative $a.


Zawsze można przypisać wartość bezwzględną abs


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
zegarek84
post 1.12.2009, 17:11:40
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


Cytat(bartisz @ 1.12.2009, 17:04:50 ) *
Przyjmuje się, że reszta powinna mieć znak taki jak dzielnik....

NAPRAWDĘ?? - dzięki, nie wiedziałem ;p
Cytat(bartisz @ 1.12.2009, 17:04:50 ) *
Przy liczbach dodatnich wszystko się zgadza, jednak przy ujemnych pojawia się problem, ponieważ reszta jest ujemna. Dlaczego tak jest? Błąd interpretera?

ekhm - jakoś mnie nie przekonałeś ;p
umiesz dzielić długie liczby przez duże liczby "ręcznie" w "słupku" - może podziel ujemną przez dodatnią taką, żeby była reszta - jaka reszta wychodzi??

a jak potrzebujesz zawsze dodatnią resztę to weź to obłóż wartością bezwzględną winksmiley.jpg


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.04.2025 - 05:40