Java 从给出错误答案的大型数据集中查找float的最小值
我必须从某个用户3.1M的大数据集中找出最小值,才能对我的论文工作进行实验。数据在文本文件中以以下格式给出-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
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