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

 
Previous Post 구글 맵] 상세한 일본 전국/동경(도쿄)시내 상세 지도; 무료 지도; Google Maps...도스(DOS) 배치파일 명령어 목록[Perl/펄] 출력을 파일로 저장하기 - Save to File구글어스4] 팩맨(PACMAN) 크롭서클(Crop Circle) 발견 - Google Ea...[엑셀] 10진수/16진수 변환 함수, HEX2DEC / DEC2HEX - 십진수 십육진수...[Perl/펄] 랜덤(난수;Random)/무작위한 숫자 출력 함수 - rand - sran...사진 속의 눈이 빨갛게 나오는 적목(赤目)현상 - Red EyeEmEditor(유니코드 에디터;이엠에디터) 다운로드 사이트, 설치법[Perl(펄) 강좌] next if문의 의미; if조건문을 짧게 축약하기마우스 없을 때 키보드로만 컴퓨터 사용하기 - No Mouse

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

Monday, August 21, 2006

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

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

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