2016-08-31 3 views
3

0.1을 정확히 부동 소수점 숫자로 표현할 수 없다는 것을 알게되었습니다. 교과서 인수는 0.1이 이진 기반 과학 표기법의 일종으로 쓰여질 수는 없지만 사람들이 어떻게 구체화되었는지는 확실하지 않습니다. 그 인수가입니다. 이와 관련하여 내 질문은 지금42를 부동 소수점으로 정확하게 표현할 수 있습니까?

부동 소수점으로 정확하게 표현할 수 있습니까?

IEEE-754 binary64 형식에 대해 설명합니다.

+0

정확히 기억한다면 십진수 부분의 문제는 1/2, 1/4, 1/8, 1/16, 1/32, ..., ...의 조합으로 근사치가 될 수 있다는 것입니다. 1/(2^n), 정확하게 0.1을 얻을 수는 없습니다. 그러나 정수의 경우에는 문제가 없어야합니다. – jonhopkins

답변

3

음, contary에 정확하게

42 (decimal) == 101010 (binary) 

표현 될 수 있습니다 (귀하의 경우 42) 점의 가수 부동 들어갈만큼 작은 정수 값이 1/10 정확하게 표시 할 수 없습니다

0.1 (decimal) == 0.0001100110011001100... (binary) 

0.1 십진수는 이진 정기 분율

+0

@ zell :'42'는'double '가형 (https://en.wikipedia.org/wiki/Double-precision_floating-point_format)에 맞추기에 충분히 작습니다 (52 비트 미만). 여러분은 '0.1'을'1 * 10^-1'로 표현할 수 있고'1'과'-1' 둘 다 정확하게 표현할 수 있습니다. 이것은 십진수 타입 –

+0

의 아이디어입니다. 매우 명확합니다. 고마워요! – zell