2017-02-05 1 views
0

Ich muss min Wert aus einem großen Datensatz von 3.1M des Gehalts eines Benutzers herausfinden, um ein Experiment meiner Abschlussarbeit zu betreiben. Die Daten werden im folgenden Format in einer Textdatei ausgegeben:Min Wert von Float aus einem großen Datensatz finden falsche Antwort

0024000 
0070000 
9999999 
0079500 
0091500 

Alle Daten sind positiv.

Ich versuche herauszufinden, min mit Math.min. Das Ergebnis erhält jedoch eine negative Zahl, aber die Daten enthalten keine negative Zahl.

Kann mir bitte jemand erklären, was ich falsch mache? Hier ist die Code-

public void readFile() 
{ 
    double max=Double.MIN_VALUE; 
    double min=Double.MAX_VALUE ; 
    BufferedReader br = null; 
    String line = ""; 
    try { 
     br = new BufferedReader(new FileReader("ipum_data.txt")); 
     int id=1; 
     while ((line = br.readLine()) != null) 
     { 
      User user=new User(); 
      user.id=id; 
      user.salary=Double.parseDouble(line); 
      if(user.salary<=0.0) continue; 
      else 
      { 
       userList.add(user); 
       id++; 
       actual_total_salary+=user.salary; 
       max=Math.max(max, user.salary);    
       min=Math.min(min,user.salary);      
      }     
     } 

    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 
    System.out.println("max salary "+max); 
    System.out.println("min salary "+min); 
} 
+1

Es könnte sein, dass Sie die Kapazität des Typs "float" überfließen. Was passiert, wenn Sie stattdessen 'double' verwenden? – abl

+2

Warum nicht Integer verwenden? – Aubin

Antwort

1

Verwenden Float.MAX_VALUE für die Initialisierung oder eine Doppel verwenden, in dem Fall Double.MAX_VALUE verwenden.

+0

Ich habe beides versucht. Aber gibt die gleiche Antwort min = -12800.0 @ dev8080. Aber die Datei enthält diese Daten nicht. Es ist eine einfache Sache, hat aber nicht funktioniert. Ich benutze die ähnliche Methode, um Max zu finden, aber es funktioniert :( – Mousumi

+0

PLZ Ihren Code ... der Fehler könnte woanders sein. – dev8080

+0

Ich habe meinen Code angehängt. Bitte schauen Sie :( – Mousumi

Verwandte Themen