2017-02-05 1 views
-2

"public static double"메서드를 사용하는 데 문제가 있습니다. 내가 얻은 결과는 다음과 같습니다. 첫 번째 출력의 경우 1-10을 오름차순으로 표시합니다. 내가 얻은 두 가지 결과는 10 개의 결과입니다. 내 문제는 형식이 아니며 오류 메시지가 없습니다.추가 메서드를 올바르게 사용하십시오.

public static void main(String[] args) { 
    System.out.println("Sec\tMeters\tFeet "); 

    for (int t=1; t<=10; t+=1) { 
     System.out.print(t); 

     System.out.print("\t" + distanceFell(t)); 

     double conv = ((1/2) * 9.8 * ((t)*(t))); 
     System.out.println("\t" + metersToFeet(conv)); 
} 

}   

public static double distanceFell(int t) 
{ 
    double conv = ((1/2) * 9.8 * ((t)*(t))); 
    return (conv); 
} 

public static double metersToFeet (double conv) 
{ 
    double convFeet = (conv/0.3048); 
    return (convFeet);   
} 
} 
+3

구체적으로 ** 어떤 문제가 있습니까? double을 String으로 변환합니까? 컴파일러 오류 메시지가 표시됩니까? Misbehaviors? 다른 것? 보다 구체적이고 명확한 질문을하면 대개 답을 더 잘 볼 수 있습니다. –

+1

당신은'metersToFeet()'에서 사용하고자하는'conv' 변수가 없습니다. – QBrute

+0

여러분의 문제 중 하나가 출력 형식이라고 추측합니다. 최소한 루프의 처음 두 출력에'System.out.println (...) '대신'System.out.print (...)'를 사용하고 싶을 것입니다. 또한 사이에''\ t ''를 출력합니다. –

답변

0

당신이 1/2하여 곱셈을 시작하기 때문에, 이것은 0의 결과를 제공합니다 : 여기

내가 현재 가지고있는 것입니다. 정수 부분은 부분의 전체 세그먼트를 유지하고 나머지를 버립니다.

따라서 0 * 9.8 * t * t이 표시됩니다. 알고 계시 겠지만 0.0입니다.

1/2 대신 0.5을 사용해야합니다. 이렇게하면 나중에 떠 다니는 부동 소수점 연산을 얻을 수 있습니다.

+0

완벽하게 작동합니다! 정수 나누기가 나머지를 버리는 것을 나는 몰랐다. 당신의 설명에 감사드립니다. –

관련 문제