C++

[C++] 소수점 반올림/올림/내림/버림

출력만 하는 경우

 

형식 지정자 %.2f 를 사용 ( 몇번째 자리에서 반올림 하냐에 따라 숫자 변경

 

int main(void) {
    float myfloat = 37.777779;
    printf("%.2f", myfloat);
}

 

출력: 37.78

 

 

연산을 하는 경우

 

1) 내림/반올림/올림에 따라 각 각 <math.h>의 floor() / ceil() / floor() 함수 사용

 

#include <math.h>

float val = 37.777779;

float rounded_down = floor(val);   /* 내림: 37 */
float nearest = floor(val + 0.5);  /* 반올림: 38 */
float rounded_up = ceil(val);      /* 올림: 38 */

반올림의 경우 내림 함수인 floor()에서 +0.5를 해주면 됨

 

 

 

2) 반올림 round() 함수 사용

 

#include <math.h>

float val = 37.777779;

float rounded_down = round(val);   /* 반올림: 38 */

round() 함수의 경우 C++11부터 지원

 

 

 

3) 버림 trunc() 함수 사용

 

#include <math.h>

float val = 37.777779;

float trunc_function = trunc(val);   /* 버림: 37 */

 

소수점 아래의 값은 버리는것

내림 함수와는 다름!

 

 

 

참고

 

https://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

 

https://blockdmask.tistory.com/112

 

 

728x90
반응형