=======================
=======================
=======================
발생하는 문제 및 실행환경
C언어에서는 37.777779같은 float타입을
37.777779 -> 37.78같이 소수점 둘째자리까지 반올림하려면 어떻게 해야되나요?
2016년 02월 04일에 작성됨
---------------------------------------------------------------------------------------------------------------------------------------------------
출력만 하는 경우
연산이 아니라 그냥 출력만 하는 경우, 형식 지정자 %.2f를 씁니다.
int main(void) { float myfloat = 37.777779; printf("%.2f", myfloat); }
출력 : 37.78
연산 등을 위해 반올림하는 경우
내림/반올림/올림에 따라 각 각 <math.h>의 floorf, roundf, ceilf를 써야 합니다.
#include <math.h> float val = 37.777779; float rounded_down = floorf(val * 100) / 100; /* 내림: 37.77 */ float nearest = roundf(val * 100) / 100; /* 반올림: 37.78 */ float rounded_up = ceilf(val * 100) / 100; /* 올림: 37.78 */
floating point연산은 오차가 있어서 기존 값과 약간의 차이가 있을 수도 있습니다.
=======================
=======================
=======================
'프로그래밍 관련 > 프로그래밍 관련팁' 카테고리의 다른 글
메시징 구동 방식 메세지 대정리 (0) | 2020.09.15 |
---|---|
윈도우 7 & 2008 USB 설치 방법 초간단 사용기 (0) | 2020.09.15 |
C/C++ SendMessage와 PostMessage의 차이 (0) | 2020.09.14 |
공인 인증서로 전자인증 관련 (0) | 2020.09.10 |
vs 2005,2008 빌드 듀얼,쿼드코어를 이용한 속도 높이기 (0) | 2020.09.10 |