# Rechnen mit Fließkommazahlen



## Thomas Darimont (5. März 2006)

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:

```
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


----------



## flashray (5. März 2006)

Hallo Thomas,

stell doch auch mal ne Frage hier ins Forum  ! Immer Antworten und nie Fragen stellen, das muss doch langweilig auf die Dauer sein.

Vg Erdal


----------



## Thomas Darimont (5. März 2006)

Hallo,



> stell doch auch mal ne Frage hier ins Forum!


Leider haben wir hier kein Forum über Frauen...
Ich benutze das Java Forum eben ab und an gerne als kleinen Blogersatz

Gruss Tom


----------



## Romsl (6. März 2006)

Hi,

eine Möglichkeit auch mit solchen Zahlen zu rechnen.

*1031.00000000000000000000000000000000000000232 - 1031.000000...*

Es gibt einen Algorithmus der die Werte getrennt voneinander berechnet und zum Schluß wieder zusammenführt.

Gruß

Romsl


----------

