Junior
Kako se mogu uporediti primitivni tipovi podataka?
sobes.tech АИ
Одговор од АИ
Primitivni tipovi podataka u Javi se porede po njihovoj vrednosti koristeći operatore poređenja:
==(jednakost)!=(nejednakost)>(veće)<(manje)>=(veće ili jednako)<=(manje ili jednako)
// Poređenje celobrojnih vrednosti
int x = 10;
int y = 20;
boolean isEqual = (x == y); // false
boolean isGreater = (x > y); // false
// Poređenje brojeva sa pokretnom zarezom
double a = 3.14;
double b = 3.14;
boolean areEqualDoubles = (a == b); // true (za tačne vrednosti)
// Poređenje karaktera
char c1 = 'A';
char c2 = 'B';
boolean isCLessThanC2 = (c1 < c2); // true
// Poređenje boolean tipa
boolean flag1 = true;
boolean flag2 = false;
boolean areFlagsEqual = (flag1 == flag2); // false
Važno je zapamtiti da kod poređenja brojeva sa pokretnom zarezom (float, double), direktno korišćenje == može biti netačno zbog načina na koji su brojevi predstavljeni u memoriji. U takvim slučajevima, za proveru približne jednakosti, koristi se poređenje apsolutne vrednosti razlike sa malom tolerancijom (epsilon).
double val1 = 0.1 + 0.2; // zapravo nije tačno 0.3 zbog preciznosti
double val2 = 0.3;
double epsilon = 1e-9; // Mala tolerancija
// Netacan način
boolean incorrectEquality = (val1 == val2); // može biti false
// Preporučeni način za poređenje brojeva sa pokretnom zarezom
boolean correctEquality = (Math.abs(val1 - val2) < epsilon); // true