Porównywanie liczb double z tolerancją epsilon

Instrukcje warunkowe - Podstawy Javy (Java)

Porównywanie liczb zmiennoprzecinkowych bezpośrednio (==) może być niebezpieczne ze względu na błędy zaokrągleń. Rozwiązanie: Obliczamy różnicę między liczbami. Sprawdzamy, czy różnica jest mniejsza od tolerancji (epsilon).

public class Main {
  public static void main(String[] args) {
    double liczba1 = 0.1 + 0.2;
    double liczba2 = 0.3;
    double epsilon = 1e-9; // Tolerancja błędu

    // Porównanie z tolerancją
    boolean czyRowne = Math.abs(liczba1 - liczba2) < epsilon;

    System.out.println("Liczba 1: " + liczba1);
    System.out.println("Liczba 2: " + liczba2);
    System.out.println("Czy liczby są równe (z tolerancją): " + czyRowne);
  }
}

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Podstawy Javy · Zaloguj się, aby zapisać postęp na koncie.