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.