** 이 게시판은 댓글이 달리면 게시물을 삭제할 수 없습니다. **
** 내용의 장기노출이 곤란한 경우 [수정]을 통해 내용을 변경하시기 바랍니다. **
#include <stdio.h>
int main()
{
float n;
scanf("%2f",&n);
printf("%f",n);
return 0;
}
이렇게 입력하고 결과를 보면
4.5<-입력
4.000000 출력
** 이 게시판은 댓글이 달리면 게시물을 삭제할 수 없습니다. **
** 내용의 장기노출이 곤란한 경우 [수정]을 통해 내용을 변경하시기 바랍니다. **
#include <stdio.h>
int main()
{
float n;
scanf("%2f",&n);
printf("%f",n);
return 0;
}
이렇게 입력하고 결과를 보면
4.5<-입력
4.000000 출력
%.2f 면 소수 부분을 2자리로 출력합니다.
scanf에 숫자를 넣으면 해당 자릿수에 해당하는 부분만 읽어들이는 것 같네요.
즉, 4.5 에서 %2f했을 경우 정수부 2자리만 읽어들이므로
100.1001 에서 %2f하면 00 만 읽어 들여서 0이 될거고
4.5에서 %.2f한다면 0.5만 들어와야 할거 같습니다.
저도 테스트 해본건 아니라 정확한건 아닙니다.
테스트 해보 다시 알려드리죠.
즉 4.5에서 앞의 2개인 4. 만 읽어들인 겁니다.
3이라고 붙였다면 4.5 다 읽어들이죠.
앞에 .2라고 붙이는 경우는 제대로 동작 안하네요. 계속 0으로만 나옵니다.
.뒤에 숫자는 소숫점 이하를 의미할 거라 생각했는데 아니네요.
앞의 12 만 들어갑니다.
예상했기론 뒤의 67만 들어갈 것 같았는데
그냥 해당 입력을 문자열로 인식하기 때문인 것 같습니다.
왼쪽부터 2자리 읽는다는겁니다.