Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从给出错误答案的大型数据集中查找float的最小值_Java_Min - Fatal编程技术网

Java 从给出错误答案的大型数据集中查找float的最小值

Java 从给出错误答案的大型数据集中查找float的最小值,java,min,Java,Min,我必须从某个用户3.1M的大数据集中找出最小值,才能对我的论文工作进行实验。数据在文本文件中以以下格式给出- 0024000 0070000 9999999 0079500 0091500 所有数据都是正面的 我正在尝试使用Math.min找出min。但结果是一个负数,但数据不包含任何负数 谁能解释一下我做错了什么? 这是密码- public void readFile() { double max=Double.MIN_VALUE; double min=Double.MAX

我必须从某个用户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);
}
public void readFile()
{
双倍最大值=双倍最小值;
双最小值=双最大值;
BufferedReader br=null;
字符串行=”;
试一试{
br=新的BufferedReader(新的文件读取器(“ipum_data.txt”);
int-id=1;
而((line=br.readLine())!=null)
{
用户=新用户();
user.id=id;
user.salary=Double.parseDouble(行);

如果(user.salary使用Float.MAX\u值进行初始化,或者使用double,在这种情况下使用double.MAX\u值。

可能是因为您溢出了
Float
类型的容量。如果改为使用
double
会发生什么?为什么不使用Integer?我尝试了这两种方法。但给出了相同的答案min=-12800.0@dev8080。但文件不包含此数据。这是一件简单的事情,但不起作用。我使用类似的方法查找max,但它起作用:(@Mousumi,你说这个文件不包含这个值。你个人看过所有310万行吗?如果没有,为什么不在代码中添加一些逻辑,告诉你它是否读取负数。提示:如果它还告诉你负数出现的行号,那会很有帮助。@james large我假设它应该是正数ve as薪资数据不应该是负数:(这是个错误。非常感谢。当我添加这一行时,它是有效的。如果(user.salary