떡밥위키
최근 변경
최근 토론
특수 기능
파일 올리기
작성이 필요한 문서
고립된 문서
고립된 분류
분류가 되지 않은 문서
편집된 지 오래된 문서
내용이 짧은 문서
내용이 긴 문서
차단 내역
RandomPage
라이선스
IP 사용자
216.73.216.107
설정
다크 모드로 전환
로그인
서버 점검 공지
|
개인정보 처리방침 개정 안내
최대 정수 함수
(r1 문단 편집)
이 문서는
이 문단은
토론
을 통해 표제어를 최대 정수 함수로 하기로 합의되었습니다.
합의된 부분을 토론 없이 수정할 시
주딱
의 기분에 따라 제재될 수 있습니다.
아래 토론들로 합의된 편집방침이 적용됩니다.
합의된 부분을 토론 없이 수정할 시
주딱
의 기분에 따라 제재될 수 있습니다.
[ 내용 펼치기 · 접기 ]
토론
- 표제어를 최대 정수 함수로 하기
토론
- 합의사항2
토론
- 합의사항3
토론
- 합의사항4
토론
- 합의사항5
닫기
RAW 편집
미리보기
=== C, C++ 언어에서 구현 === C, C++ 언어에서는 math 라이브러리 에 floor() 함수가 존재한다. ||{{{#double floor(double x); }}} [br] {{{#float floorf(float x); }}} [br] {{{#long double floorl(long double x); }}} || ||C math 라이브러리의 floor() 함수 || 위 함수들은 C99 기준이며, C90 에는 double 함수만 존재한다. ||{{{#double floor (double x); }}} [br] {{{#float floor (float x); }}} [br] {{{#long double floor (long double x); }}} || ||C++ math 라이브러리의 floor() 함수|| C++ 에서는 함수 오버로딩이 가능하기에 함수 이름이 모두 floor() 로 같다. 위는 C++98 기준이며, C++11 에는 오버로딩을 위한 double floor (T x); 같은 타입도 추가되어 있다. 위 math 라이브러리의 함수들은 리턴값의 타입이 변경되지 않으므로, 마지막에 int 로 캐스팅 해서 대입하면 된다. 참고로, 원래 입력의 타입을 변경하지 않고 리턴하는 이유는 int 변수 보다 큰값에 대한 처리를 프로그래머에게 넘기기 위해서이다. 예를 들어 double 은 INT_MAX 보다 훨씬 큰 값을 저장할 수 있는데, int 로 미리 변환해서 넘겨 버리면 [[오버플로]]를 대처할 수 없게 된다. math 라이브러리 없이 사용하려면 int 캐스팅을 이용해서 간단히 구현할 수 있다. 다만 이 경우는 음수에서는 정상 동작하지 않기에 아래와 같은 함수를 하나 생성해서 쓰면 된다. 이 역시 오버플로에 대해서는 고려되어 있지 않다. > {{{#int my_floor(double a) }}} > {{{ { }}} > {{{#return (int) ( ((a >= 0) || (a == ((int)a))) ? a : a-1 ) ; }}} > {{{ } }}}
요약
문서 편집을
저장
하면 당신은 기여한 내용을
CC BY-NC-SA 2.0 KR
또는
기타 라이선스 (문서에 명시된 경우)
로 배포하고 기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다. 이
동의는 철회할 수 없습니다.
비로그인 상태로 편집합니다. 로그인하지 않은 상태로 문서 편집을 저장하면, 편집 역사에 본인이 사용하는 IP(216.73.216.107) 주소 전체가 영구히 기록됩니다.
저장
사용자
216.73.216.107
IP 사용자
로그인
회원가입
최근 변경
[불러오는 중...]
최근 토론
[불러오는 중...]