제가 f=5/9*c+32를 계산하고싶은데dst = ((9 / 5) * src) + 32;이렇게 넣으니까 9/5를 1로 계산해서 원하는값이 안나오는데어떻게 넣어야 값이 제대로 나올까요??
dst = (5/9) * src +32
이것도 1로 계산하는거 같아요 31넣으면 32나옴
31넣으면 32가나와 게시글대로 하면 63이나오고
1.8*31+32면 87이 나오게 하고싶은데 너무 어려워
float은 갑자기 생각은 못했네, 묵시적 형변환 이런거 찾아보세요.
ㄱㅅㄱㅅ한번 찾아볼게
(double)(9/5) 해보세용
묵시적 형변환 한번 찾아보고해볼게 ㄱㅅㄱㅅ
저게 그건뎅..!
이게 게시글에있는 9/5는 변수선언을 안했으니까 자동으로 정수가 되는거야?? 앞에 double을 붙히면 그 계산식만 일시적으로 실수형으로 바꿔주는거고?? 제대로 이해한게맞나??
저거 (double)(9/5)는 1.8로 안나오고 1.0으로 나오려나
9랑 5는 정수 int잖아, 정수끼리 나누면 값도 정수로 나와 그래서 소수점들은 버리고 정수가 나와 그러니까 9/5를 하면 1이 나온거지 반면 실수/정수 or 정수/실수 orx 실수/실수는 소수점까지나와
그 이유는 나누는 숫자 중 하나라도 실수면, 실수로 계산해줘 그래서 앞서 (double)9/5하면 9가 실수로 타입변환 되엏기 때문에 소수점까지 나오는거양
9랑 5는 정수인거지 변수가 아냥!
저 블로그보니 이해가되네 두개가 정수일때는 정수로 나오고 둘중 하나가 실수일때는 형변환으로 실수로 값이 나오니까 9/5를 9나 5에 .0을 붙혀넣으면 묵시적 형변환으로 실수계산이 되는거네 고마워ㄱㅅㄱㅅ
(double)9를 적어도 실수로 나오는거는 9.0으로 인식해서 그러는거면 .0을 붙히던가 (double) 둘줄 하나를 선택하면 되는거네 ㄱㅅㄱㅅ땡큐우
9.0 / 5 * src 해도되고