Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Porównanie dwóch liczb ujemnych
Forum PHP.pl > Forum > Przedszkole
Szunaj85
Jak za pomocą warunku porównać dwie liczby ujemne czy nie są takie same?
  1. if ($liczba_1 === $liczba_2)
blooregard
chodzi Ci chyba o ich wartości absolutne, tak?
http://pl2.php.net/abs
DiH
Jeżeli chodzi Ci o sprawdzenie, czy są różne, to:
  1. if($v1 != $v2) { echo 'Są różne.'; }

Czytałeś jakiś kurs PHP chociaż? Chyba, że chodzi Ci o sprawdzenie czy ich wartości bezwzględne nie są takie same.

Edit: No proszę, jest funkcja do tego tongue.gif
Szunaj85
Przepraszam, pisząc posta pomyliłem się. Chodzi o sprawdzenie przy pomocy warunku "if" czy dwie ujemne zmienne nie są identyczne.
MWL
  1. if(abs($a) != abs($b))
  2. {
  3. echo "nie są";
  4. }


gdzie a i b to te dwie liczby
DiH
Przecież przy sprawdzaniu wartości liczbowych php radzi sobie z porównywaniem także liczb ujemnych i różnoznakowych, jak zresztą każdy język. Także podany kod (!=) zadziała jak najbardziej. Chyba, że czegoś nie rozumiem w Twoim poście.
MWL
no, szczerze. też mi się tak wydaje smile.gif
mortus
Zmienne nie mogą być ujemne. Zmienna to zmienna. Może ona co najwyżej przyjmować wartości ujemne, jeżeli jest liczbą. Pozostaje kwestia rzutowania, bo jeśli np. w tablicy $_GET przekazaliśmy jakąś zmienną, której wartość "jest" liczbą ujemną, to musimy pamiętać, że wartość w tej tablicy $_GET to nie liczba, a ciąg znaków. Jeżeli chcemy, aby była to liczba, to najlepiej rzutować wartość i zapisać ją pod nową zmienną. Przykład:
  1. if(isset($_GET['liczba']) && $_GET['liczba'] != '') {
  2. $liczba = (int) $_GET['liczba'];
  3. }
Wtedy mamy pewność, że zmienna $liczba jest liczbą całkowitą. Oczywiście możemy rzutować również na inne typy zmiennych (czy to liczbowe, czy nie). Do porównywania zarówno typów, jak i wartości służy operator ===, jeżeli chcemy sprawdzić czy typy i wartości są różne to stosujemy !==.
MWL
Czemu zakładasz że dane MUSZĄ być wejściowe, może to po prostu jakieś obliczenia... poza tym wyraźnie powiedziano że zależy nam na porównaniu liczb a nei sprawdzeniu czy zmienna istnieje a nie czy jest empty()
mortus
Przecież ja niczego nie zakładam. Tłumaczę jedynie, jak może być.
Cytat(Szunaj85 @ 21.03.2010, 13:38:33 ) *
Przepraszam, pisząc posta pomyliłem się. Chodzi o sprawdzenie przy pomocy warunku "if" czy dwie ujemne zmienne nie są identyczne.
Dwie zmienne są identyczne, jeżeli:
1. są tego samego typu,
2. mają taką samą wartość.
Sprawdzamy to w if-ie
  1. if($zmienna1 === $zmienna2) {
  2. // zmienne są identyczne
  3. }
  4. // lub
  5. if($zmienna1 !== $zmienna2) {
  6. // zmienne są różne tzn. różnią się albo wartością, albo typem
  7. }
Szunaj85
Cytat
Czemu zakładasz że dane MUSZĄ być wejściowe, może to po prostu jakieś obliczenia
Tak, są to zwykłe obliczenia gdzie wynikiem są ujemne liczby całkowite (zmienne).
Problem polega na tym, że sprawdzenie warunkiem dwóch liczb dodatnich czy nie są takie same (równe) działa, ale przy ujemnych już nie. sadsmiley02.gif
mortus
Podejrzewam, że masz błąd w kodzie, jeżeli możesz, to wklej go tutaj. Jeżeli nie możesz, to wstaw echo var_dump($nazwa_zmiennej_1); echo var_dump($nazwa_zmiennej_2); przed warunkiem, zobaczysz jakiego typu są te zmienne i może dojdziesz do jakiegoś wniosku. Dwie zmienne będące liczbami całkowitymi ujemnymi porównuje się zwykłym operatorem porównania, czyli == i takie porównanie działa bez zarzutu.
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.