2012-11-08 2 views
0

화씨에서 섭씨로 표현 된 온도를 섭씨로 변환하는 프로그램을 작성하려고합니다. 사용자가 화씨 값을 입력하면 프로그램에서 섭씨 값을 인쇄합니다. 사용자가 화씨 값으로 212를 입력해야합니다. 프로그램에서 섭씨 값으로 100.0을 계산하지만 100.0을 얻으 려 할 때 섭씨 값으로 0.0을 얻습니다.
화씨에서 섭씨로 변환

잘 모르겠습니다. 문제가있을 수 있습니다. 그것은 작업 순서 일 가능성이 있습니까?

화씨 섭씨 변환 공식은 : 당신이 double에 할당하고 비록 그것이 0를 돌아갑니다 있도록 C = 5/9 (F - 32)

import acm.program.*; 

public class FahrenheitToCelsius extends ConsoleProgram { 

    public void run() { 
     println("This program converts Fahrenheit to Celsius"); 
     int fah = readInt("Enter Fahrenheit temperature: "); 
     double ft = 5/9; 
     double cel = ft * (fah - 32); 
     println("Celsius equivalent = " + cel); 
    } 
} 

답변

4

5/9는 정수 부서입니다.
시도 5.0/9.

+0

예. 문제가 있습니다. 감사. –

+0

여러분을 환영합니다! – tzaman

+0

@JessicaM. 이 게시물을 답변으로 표시하는 것을 잊지 마십시오. –

2
double ft = 5/9 ; 

위의 내용은 생각대로는 아닙니다.
59은 모두 정수이며 정수 나누기를 수행합니다. 결과를 double에 할당한다는 사실은 중요하지 않습니다. 두 피연산자 모두 정수이면 정수 계산이됩니다.

그래서 ft 항상 0, 그래서 cel

double ft = 5.0/9.0; 
0

두 정수에서 작동 할 때, 결과가 두 배로 변환되지 않습니다 시도 항상 0

입니다. 단지 int로 유지됩니다. 결과를 double로 얻으려면 숫자 중 적어도 하나가 double이어야합니다. 예 :

 double ft = 5.0/9; //double 
     double ft = 5/9.0;//double 
     double ft = 5.0/9.0;//double 

 double ft = 5/9; //int 0 

있지만 자세한 내용은 Floating Point Operations Specification을 참조하십시오.

+0

정보를 제공해 주셔서 감사합니다. –

+0

@JessicaM .: 도움이된다고 생각한다면 대답을 수락하는 것을 잊지 마십시오. –