프로그래밍 관련/프로그래밍 관련팁

C, C++ 소수점 2째자리까지 반올림하는 법 관련

AlrepondTech 2020. 9. 15. 11:43
반응형

 

 



=======================

=======================

=======================

 

 

 

 

 

 

출처: http://hashcode.co.kr/questions/935/%EC%86%8C%EC%88%98%EC%A0%90-2%EC%A7%B8%EC%9E%90%EB%A6%AC%EA%B9%8C%EC%A7%80-%EB%B0%98%EC%98%AC%EB%A6%BC%ED%95%98%EB%8A%94-%EB%B2%95

 

발생하는 문제 및 실행환경

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>의 floorfroundfceilf를 써야 합니다.

#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연산은 오차가 있어서 기존 값과 약간의 차이가 있을 수도 있습니다.

 

 

=======================

=======================

=======================

 

 

반응형