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
[59988] Re:Re:Re:Re:double을 float형태로 바꾸는 방법.
마이클플리 [] 1310 읽음    2010-01-26 22:52
두분다 일단 감사드리고요...

모르는 지식 알려주신거라 까칠하게 생각 하지는 않습니다. ^^

니블님도 감사드립니다.^^

휴... 먹고 살려고 능력 안되는거 찾아서 하는게 쉽지가 않네요..




Lyn 님이 쓰신 글 :
: 그러게요 조각난 지식으로 너무 설친듯.
: 이젠 답 안달아야겠네요.
:
:
: Nibble 님이 쓰신 글 :
: : 글의 오류
: :
: : 마이클플리님이 쓰신 글의 코드는 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형태로 바꾸는 방법. 마이클플리 1310 2010/01/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.