Thomas Darimont
Erfahrenes Mitglied
Hallo!
Reicht einem bei Berechnungen mit Gleitkommazahlen die Genauigkeit von float aus und rechnet man trotzdem mit double Werten, so hat man oft das Problem mit Rundungsfehlern. Beispielsweise könnte das Ergebnis einer Berechnung (für unsere Genauigkeitsanfroderungen) nahe genug bei 0 liegen, so dass wir das Ergebnis als 0 werten.
Das könnte man dann beispielsweise wie folgt Bewerkstelligen:
Gruß Tom
Reicht einem bei Berechnungen mit Gleitkommazahlen die Genauigkeit von float aus und rechnet man trotzdem mit double Werten, so hat man oft das Problem mit Rundungsfehlern. Beispielsweise könnte das Ergebnis einer Berechnung (für unsere Genauigkeitsanfroderungen) nahe genug bei 0 liegen, so dass wir das Ergebnis als 0 werten.
Das könnte man dann beispielsweise wie folgt Bewerkstelligen:
Code:
package de.tutorials;
public class EpsilonExample {
/**
* @param args
*/
public static void main(String[] args) {
double a = 0.00000000000000000000000000000000000000000001;
double b = 0.000000000000000000000000000000000000000000001;
System.out.println(isNearZero(a));
System.out.println(isNearZero(b));
}
static boolean isNearZero(double value){
return Math.abs(value) < Float.MIN_VALUE;
}
}
Gruß Tom