카테고리 없음
[펌웨어] 이상한 현상 발견 (printf를 float과 uint32_t 관련)
newbeverse
2025. 1. 9. 16:48
float 3.14를 uint32_t 로 변경하면, 3이 출력되어야한다.
float value = 3.14f;
uint32_t converter = value;
printf("value : %f\n", value);
printf("converter : %f\n", converter);
- 컴파일시 결과 값이, 3.14와 3.139999 가 출력된다.
- converter 는 uint32_t 였으므로, %f 이 아닌, %u (unsigned)로 출력했어야 한다.
- 그래서 %f로 출력이 잘못돼서 발생하는 문제인지는 모르겠다.
정상적인 예시
float value = 3.14f;
uint32_t converter = value;
printf("value : %f\n", value);
printf("converter : %u\n", converter);
- converter는 3이 출력된다.
반응형