我必须从一个用户工资的3.1M的大型数据集中找出最小值来运行我的论文工作的实验。数据以下列格式在文本文件中给出 -
0024000
0070000
9999999
0079500
0091500
每个数据都是正数。
我正在尝试使用Math.min
找出min。但结果是负数,但数据不包含任何负数。
任何人都可以解释我做错了什么吗? 这是代码 -
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);
}
答案 0 :(得分:1)
使用Float.MAX_VALUE进行初始化或使用double,在这种情况下使用Double.MAX_VALUE。