캐스트 연산 다시 질문.
연분홍
2023.04.01
문제 :
임의의 실수에서 소수점 이하 두자리수만 추출하여 정수형 변수에 대입하라.
예를 들어 사용자로부터 입력받은 실수 f가 12.3456이라면 34만 추출한다.
#include stdio.h
int main()
{
double f;
int i;
printf(실수를 입력하시오 : );
scanf(%lf,&f);
i=(int)f;
i=(unsigned int)((f-(double)i)*100);
printf(i=%d\n,i);
}
위에는 제가 코딩한 소스 인데요.
1. 12.34를 입력하면 34가 나와야 하는데 33이라는 값이 나옵니다.
2. 12.345를 입력하면 정상적으로 34가 나옵니다.
3. -12.34를 입력하면 unsigned로 캐스트했기 때문에 부호가 없어져야 하는게 아닌가요?
어느부분이 잘못되었는지 좀 조언 부탁드립니다.