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

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

 
Saturday, December 02, 2006

C언어] 소수점 이하 버리기, 실수를 정수로; float to int


C에서, 반올림하지 않고 그냥 소수점 이하를 버리기 위해서는
(int)
이렇게 캐스팅하여, 실수를 정수로 바꾸어 주면 됩니다.


소수점 이하 삭제 예제


소스 파일명: 0.cpp
#include <stdio.h>

int main(void) {

  float f;

  f = 123.99999f;
  printf("%d\n", (int) f);
  // 출력 결과(반올림 없음): 123


  f = 123.999999f; // 9가 한 개 더 붙으면
  printf("%d\n", (int) f);
  // 출력 결과(반올림 됨): 124



  double d;

  d = 4543.999999999999;
  printf("%d\n", (int) d);
  // 출력 결과(반올림 없음): 4543


  d = 4543.9999999999999; // 9가 한 개 더 붙으면
  printf("%d\n", (int) d);
  // 출력 결과(반올림 됨): 4544


  return 0;
}


위의 예제에서, 소수점 이하에 9 가 많이 붙으면 "반올림"되는 현상이 나타나는데, 이것은 엄밀한 의미에서의 반올림은 아니고, 부동소수점 표현의 문제일 것입니다.

진짜 반올림 방법은 여기에 있습니다: ▶▶ [C언어 기초] 반올림 함수 - Round To Int - roundToInt()



▶▶ C언어] 실수, 정수부/소수부 구하기, 소수점 이하만 추출; Get FRACTIONAL PART Only




tag: cpp
C언어 | C/C++ (Visual C++) 프로그래밍

0 Comments:

<< Home RSS 2.0 feed

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