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);
}
Es könnte sein, dass Sie die Kapazität des Typs "float" überfließen. Was passiert, wenn Sie stattdessen 'double' verwenden? – abl
Warum nicht Integer verwenden? – Aubin