从大型数据集中查找浮点的最小值,给出错误的答案

时间:2017-02-05 16:51:58

标签: java min

我必须从一个用户工资的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);
}

1 个答案:

答案 0 :(得分:1)

使用Float.MAX_VALUE进行初始化或使用double,在这种情况下使用Double.MAX_VALUE。