DAVID 마란 :의 지금 당신의 마음을 날려 보자. 그것은 나눈 실제 1 밝혀 (10)에 의해 1 / 10, 또는 0.1 참이다. 그러나 컴퓨터 만 유한이 그 비트 수있는과에 숫자를 표현, 당신은 항상 할 수 없습니다 와 1 / 10 같은 숫자를 표현 완벽한 정밀도. 즉, 컴퓨터는 가끔있을 판단 호출하지를 만들기 위해 반드시 숫자 당신을 나타냅니다 로 정확하게 의도 한대로 원하는. 예를 들어, 내가로 돌아가 가정 이 프로그램에 0.1을 변경, 오, 0.28함으로써 나타내는 그 나는에의 printf의 printf 싶습니다 정밀도 28 곳. 의 지금 저장하고 프로그램을 컴파일하자 메이크 floats2이 시간. 점 슬래시 floats2로 실행합니다. 그리고 친애하는 하나님, 나는 0.1하지보기 시간, 하지만 사랑스러운 0.10000000, 좋은 지금까지. 하지만, 14,901,161,193,847,656,250. 글쎄, 무슨 일이야? 음, 플로트가 밝혀 일반적으로 컴퓨터의 내부에 저장 32 비트. 32 분명히 한정된 수의, 인 만 표시 할 수 있음을 의미 32 비트 유한 수에게로 의 부동 소수점 값. 불행하게도, 그 의미 컴퓨터는 모든 가능한을 대표 할 수 없다 부동 소수점 숫자, 실수, 세계에 존재하는, 그것은 단지 많은 비트를 가지고 있기 때문에. 그리고 컴퓨터가 분명히 무엇을의 이 경우 수행 1 / 10를하는 표현된다 가능한 가장 가까운 부동 소수점 값은 수있다. 하지만 우리가 보면, 우리가 여기로, 28 소수 자리는, 우리는 그것을보고 시작 부정확. 그래서이 문제입니다 완벽한 솔루션이 없습니다. 우리는 대신 부동의 두 배를 사용할 수 있습니다 로 64 비트를 사용하는 경향이있는 (32)에 반대했다. 하지만 물론, (64)는 또한 유한 그렇게 문제는 것 도 두배로 남아있다.