%f에서 %d변환... 뭐가 문제일까요.
가람
2023.04.01
질문 제목 :
%f에서 %d변환... 뭐가 문제일까요.
pritnf함수에서 %f로 출력하면 정상출력(출력값은 xxx.0)
%d로 바꿔서 출력하면 무조건 0
질문 내용 :
#include stdio.h
int main(void)
{ double a,b,c;
double amp; scanf(%lf %lf %lf,&a,&b,&c);
amp=(2.5*a+2.0*b+0.5*c)*2;
amp=((int)amp/10+1)*10; printf(%f amperes,amp);
return 0;
}amp의 출력값은 무조건 xxx.0 입니다.
그래서 printf의 출력형태를 %d로 바꿔봤더니 출력값이 무조건 0으로 뜨네요.
어짜피 xx.0이라 %d로 바꾸면 xx로 뜰줄알았는데...뭐가 문제일까요??printf(%d amperes,(int)amp); 로하면 정상적으로 뜨긴하나, 어짜피 amp값이 xx.0인데
뭔차이가 있는지 이해가 잘 안되네요
-
마루한
printf(:%d amperes\
-
Elfin
감사합니다.
저는 실수에서 정수로 변환하는거니까
이 상황에서도 자동 변환이 일어날꺼라고 생각했거든요.. -
강남맨
printf()의 자료형에 맞게 데이터를 넘겨주어야
정상적인 값이 나오겠죠...
지금 물어보시는건...
%s에 char형 변수를 넘겨서.. 왜 에러가 나죠??라고 물어보는거같네요...