mwultong Blog ... 프로그래밍 / 계산기

컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Monday, August 21, 2006

C언어 기초] 소수점 반올림 함수; Round To Int, roundToInt()


C언어에는 반올림 함수가 내장되어 있지 않기에, 다음과 같이 직접 만들어서 써야 합니다. 실수를 반올림하여 정수로 만드는 것입니다. 즉 가장 가까운 정수 (Nearest Integer) 를 구하여 반환하는 함수입니다.


실수 소수점 이하 반올림 예제


#include <stdio.h>

int roundToInt(double x);


int main() {

  printf("%d\n", roundToInt(10.499999999999999));

  return 0;
}


int roundToInt(double x) {
  if (x >= 0) return (int) (x + 0.5);
  return (int) (x - 0.5);
}


위의 소스 코드 맨 아래쪽의 int roundToInt(double x) {... 라는 곳부터가 반올림 함수입니다.


위의 소스를 컴파일하면 10 이 나오지만, 10.499999999999999 끝에 9를 하나 더 추가하면 11 이 나오는군요.

10.499999999999999 : 10
10.4999999999999999 : 11

이렇게 미묘함이 있습니다.

비주얼C는 물론 gcc 에서도 같은 결과였습니다.



실수를, 지정한 자릿수에서 실수로 반올림 함수: ▶▶ C언어] 실수를 실수로 반올림 함수, 자릿수 지정; Round to Double Function

반올림 없이 무조건 소수점 이하 버리기: ▶▶ C언어] 소수점 이하 버리기, 실수를 정수로; float to int




tag: cpp
C언어 | C/C++ (Visual C++)

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top