tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von Biergamasda
  • 1 Beitrag von deepthroat
ERLEDIGT
JA
ANTWORTEN
2
ZUGRIFFE
322
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    dura4cell dura4cell ist offline Grünschnabel
    Registriert seit
    Feb 2010
    Beiträge
    3
    hi folks,

    hab da ein kleines problem. wieso optimiert mir java die genauigkeit weg (so deute ich jedenfalls das problem). hier der "problemcode":

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    double a = 15.95d;
    double b = 0.3d;
    double e = a * b;
    System.out.println(e);  //4.784999999999999
    float j = 15.95f;
    float k = 0.3f;
    float l = j * k;
    System.out.println(l); //4.7850003

    wie bekomme ich ein "richtiges" ergebnis? immerhin gibt es ein genaues resultat (4,785).

    gruß dura4cell
     

  2. #2
    Avatar von Biergamasda
    Biergamasda Biergamasda ist offline Mitglied Brokat
    Registriert seit
    Feb 2005
    Beiträge
    373
    mir würde spontan
    Code java:
    1
    
    Math.round()
    einfallen
    dura4cell bedankt sich. 

  3. #3
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von dura4cell Beitrag anzeigen
    hi folks,

    hab da ein kleines problem. wieso optimiert mir java die genauigkeit weg (so deute ich jedenfalls das problem). hier der "problemcode":

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    double a = 15.95d;
    double b = 0.3d;
    double e = a * b;
    System.out.println(e);  //4.784999999999999
    float j = 15.95f;
    float k = 0.3f;
    float l = j * k;
    System.out.println(l); //4.7850003

    wie bekomme ich ein "richtiges" ergebnis? immerhin gibt es ein genaues resultat (4,785).
    Gleitkommazahlen sind inhärent ungenau. Manche (einfache) reelle Zahlen (wie 0.3) sind überhaupt nicht darstellbar. Außerdem gibt es in der Nähe der Null "Löcher".

    Du müßtest einen anderen Zahlentyp verwenden der das Rechnen mit beliebiger Genauigkeit ermöglicht, wie z.b. http://java.sun.com/j2se/1.4.2/docs/...igDecimal.html

    Gruß
    dura4cell bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Nachkommastellen
    Von azubi2 im Forum .NET Café
    Antworten: 11
    Letzter Beitrag: 24.11.05, 18:01
  2. Nachkommastellen
    Von notebook20000 im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 26.09.05, 10:25
  3. Nachkommastellen
    Von nuwonda im Forum PHP
    Antworten: 1
    Letzter Beitrag: 08.10.04, 02:01
  4. nachkommastellen
    Von theindra im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 04.02.04, 18:05
  5. Nachkommastellen
    Von Feldhofe im Forum PHP
    Antworten: 3
    Letzter Beitrag: 02.07.02, 11:44