C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[59978] Re:Re:double을 float형태로 바꾸는 방법.
Nibble [gameover] 1446 읽음    2010-01-26 14:13
글의 오류

마이클플리님이 쓰신 글의 코드는 C / C++에서 허용하는 문법으로 정상적으로 컴파일은 된다.
단정도 부동소수점과 배정도 부동소수점의 유효범위와 구현 메카니즘에 대해 알지 못하셨을 뿐이다.
마이클 플리님이 말씀하신 대로 저렇게 코드를 작성하면, 소숫점 아랫자리에 정확한 값이 들어가지 않는다.
혹시 라는 문장에서 본인이 알지 못하는 지식에 대한 질의를 한 것으로, 글의 오류는 없었다고 본다.

하지만 Lyn님은 글의 오류라는 표현과 함께 까칠한 답변을 날리셨다. 비록, 조각난 지식은 담으셨을지라도.
그러므로 Lyn님의 글이 오류를 범하고 있다고 생각된다.

Lyn 님이 쓰신 글 :
: 글의 오류
:
: 1. 2진수에서 123.12 는 표기 불가능한 숫자이므로 대입시 오차가 발생한다. 즉 dTemp 에 들어 있는 숫자도 123.12 가 아니다.
:
: 2. float 의 유효자리수는 기껏해야 6자리 내외이므로  123.12000275 는 유효자리만 계산해서 123.120 으로 봐야한다. 즉 둘은 같은 숫자라고 봐도 무방하다.
:
: 3. 8byte의 데이터를 4byte에 넣는것은 애시당초 불가능하다.
:
: 마이클플리 님이 쓰신 글 :
: : double dTemp = 123.12 ;
: : float      fTemp  = (float)dTemp ;
: :
: : 이런식으로 하니까 fTemp 가 123.12000275 으로 입력되어.
: : 값이 밑에가 깔끔하게 안들어가더군요...
: :
: : 혹시 안전하게 double에서 float형태로 변환 하는 방법이 있을까요?
: :
: : 미리 감사드리겠습니다.

+ -

관련 글 리스트
59938 double을 float형태로 바꾸는 방법. 마이클플리 1084 2010/01/24
59943     Re:double을 float형태로 바꾸는 방법. 둘리.CSIEDA 1257 2010/01/25
59989         네 감사합니다. 사용해볼께요.. 마이클플리 1075 2010/01/26
59978         Re:Re:double을 float형태로 바꾸는 방법. Nibble 1446 2010/01/26
59995                 Re:Re:Re:Re:double을 float형태로 바꾸는 방법. Nibble 1071 2010/01/27
59988                 Re:Re:Re:Re:double을 float형태로 바꾸는 방법. 마이클플리 1311 2010/01/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.