scanf와 printf 사용하는데 167.8을 입력받았는데 167.800003을 출력해요ㅜㅜ
큐트
2023.04.01
질문 제목 :scanf와 printf 사용하는데 167.8을 입력받았는데 167.800003을 출력해요ㅜㅜ질문 요약 :사용자에게서 scanf로 167.8을 입력받고 받은 값을 출력하라고 했는데 167.800003이 출력됩니다.
167.7을 출력하라고 하니까 167.699997이 출력됩니다 ㅜㅜ 왜 이러는 걸까요?질문 내용 : int main(void)
{
int age;
float height; printf(나이를 적으시오 : );
scanf(%d,&age);
printf(키를 적으시오 : );
scanf(%f,&height);
printf(\n\n당신은 %d살이고 당신의 키는 %f입니다.\n\n,age,height); system(pause);
return 0;
}이렇게 프로그램 했는데
결과는 이래요ㅜㅜ도와주시면 감사하겠습니다 ㅜㅜ
-
PinkPearl
네 감사합니다!!!
-
휘율
실수를 출력할때 %.1f 또는 %g 로 출력햬보세요.
-
파라
참고로 소숫점반올림은 167.699997에서 첫번째9의 자리인 0.01자리에 5를 곱해서 더한후 뒷자리는 자르면됩니다.
-
빵야
167.7 를 2진수로 정확히 표현할 방법이 없어서 그렇습니다.
천도팡 말씀처럼 적절하게 반올림하여 출력하세요. -
보미나
%.3f 였던가 .. 이렇게 바꿔보세요~