2017-02-05 3 views
0

내 논문 작업 실험을 실행하기 위해 일부 사용자의 급여 3.1M의 대용량 데이터 세트에서 최소값을 찾아야합니다. 데이터는 텍스트 파일의 다음 형식으로 제공됩니다. -큰 데이터 세트에서 float의 최소값 찾기 잘못된 대답

0024000 
0070000 
9999999 
0079500 
0091500 

모든 데이터는 양수입니다.

Math.min을 사용하여 분을 찾으려고합니다. 그러나 결과에는 음수가 지정되지만 데이터에는 음수가 포함되지 않습니다.

누구든지 내가 뭘 잘못하고 있는지 설명해 주시겠습니까? 다음은 초기화 또는 케이스가 만들어 Double.MAX_VALUE를 사용하는 이중를 사용하기위한 코드 -에게

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

'float'유형의 용량이 오버플로되었을 수 있습니다. 대신에'double'을 사용하면 어떻게됩니까? – abl

+2

Integer를 사용하지 않는 이유는 무엇입니까? – Aubin

답변

1

사용 Float.MAX_VALUE입니다.

+0

나는 둘 다 시도했다. 그러나 동일한 대답 min = -12800.0 @ dev8080을 제공합니다. 그러나 파일에는이 데이터가 포함되어 있지 않습니다. 그것은 간단한 일이지만 작동하지 않았습니다. 비슷한 방법으로 최대 값을 찾지 만 작동합니다 : ( – Mousumi

+0

Plz 코드 게시 ... 다른 곳에서 오류가있을 수 있습니다. – dev8080

+0

내 코드를 첨부했습니다. 제발 봐 :( – Mousumi