이것좀 봐주세요;;
상1큼한렩
2023.09.19
fvalue2=int1/200;
printf(%f\n, fvalue2);이렇게 하는 것과 printf(%f\n, int1/200);이렇게 하는 것의 차이점이 뭐길래
위에는 정상적으로 나오고
밑에는 이상하게 나오나요??
-2.000000 을 출력되도록 하는게 목표입니다.
-
바름 2023-09-19
fvalue2의 자료형이 뭔지 모르겠지만, 결과가 다른 점을 비추어 볼 때,
float나 double 인 듯 합니다.
첫번째 printf 문에는 double(8바이트)형이 전달되어 double형으로 출력하는 것이고,
두번째 printf 문에는 int(4바이트)형이 전달되었는데, 전달된 인자를 double(8바이트)형으로 간주하고
스택메모리의 8 바이트를 읽어서 출력합니다. -
꼬꼬마 2023-09-19
형변환의 문제입니다.
200.0
으로 바꿔보세요.