Sobes.tech
Junior

Jak lze porovnat primitivní datové typy mezi sebou?

sobes.tech AI

Odpověď od AI

Primitivní datové typy v Java se porovnávají podle jejich hodnoty pomocí porovnávacích operátorů:

  • == (rovnost)
  • != (nerovnost)
  • > (větší)
  • < (menší)
  • >= (větší nebo rovno)
  • <= (menší nebo rovno)
// Porovnání celých čísel
int x = 10;
int y = 20;
boolean isEqual = (x == y); // false
boolean isGreater = (x > y); // false

// Porovnání čísel s plovoucí desetinnou čárkou
double a = 3.14;
double b = 3.14;
boolean areEqualDoubles = (a == b); // true (pro přesné hodnoty)

// Porovnání znaků
char c1 = 'A';
char c2 = 'B';
boolean isCLessThanC2 = (c1 < c2); // true

// Porovnání typu boolean
boolean flag1 = true;
boolean flag2 = false;
boolean areFlagsEqual = (flag1 == flag2); // false

Je důležité pamatovat, že při porovnávání čísel s plovoucí desetinnou čárkou (float, double) může být přímé použití == nepřesné kvůli vlastnostem reprezentace čísel v paměti. V takových případech se doporučuje porovnávat absolutní hodnotu rozdílu s malou tolerancí (epsilon).

double val1 = 0.1 + 0.2; // ve skutečnosti není přesně 0.3 kvůli přesnosti
double val2 = 0.3;
double epsilon = 1e-9; // Malá tolerance

// Nepřesný způsob
boolean incorrectEquality = (val1 == val2); // může být false

// Doporučený způsob pro porovnávání čísel s plovoucí desetinnou čárkou
boolean correctEquality = (Math.abs(val1 - val2) < epsilon); // true