1 00:00:00,000 --> 00:00:00,310 2 00:00:00,310 --> 00:00:01,750 >> DAVID 마란 :의 지금 당신의 마음을 날려 보자. 3 00:00:01,750 --> 00:00:06,500 그것은 나눈 실제 1 밝혀 (10)에 의해 1 / 10, 또는 0.1 참이다. 4 00:00:06,500 --> 00:00:10,370 그러나 컴퓨터 만 유한이 그 비트 수있는과에 5 00:00:10,370 --> 00:00:14,290 숫자를 표현, 당신은 항상 할 수 없습니다 와 1 / 10 같은 숫자를 표현 6 00:00:14,290 --> 00:00:15,500 완벽한 정밀도. 7 00:00:15,500 --> 00:00:18,640 즉, 컴퓨터는 가끔있을 판단 호출하지를 만들기 위해 8 00:00:18,640 --> 00:00:22,740 반드시 숫자 당신을 나타냅니다 로 정확하게 의도 한대로 원하는. 9 00:00:22,740 --> 00:00:27,020 >> 예를 들어, 내가로 돌아가 가정 이 프로그램에 0.1을 변경, 10 00:00:27,020 --> 00:00:32,073 오, 0.28함으로써 나타내는 그 나는에의 printf의 printf 싶습니다 11 00:00:32,073 --> 00:00:34,350 정밀도 28 곳. 12 00:00:34,350 --> 00:00:39,330 의 지금 저장하고 프로그램을 컴파일하자 메이크 floats2이 시간. 13 00:00:39,330 --> 00:00:41,910 점 슬래시 floats2로 실행합니다. 14 00:00:41,910 --> 00:00:49,980 그리고 친애하는 하나님, 나는 0.1하지보기 시간, 하지만 사랑스러운 0.10000000, 15 00:00:49,980 --> 00:00:51,070 좋은 지금까지. 16 00:00:51,070 --> 00:00:57,830 하지만, 14,901,161,193,847,656,250. 17 00:00:57,830 --> 00:00:58,880 >> 글쎄, 무슨 일이야? 18 00:00:58,880 --> 00:01:02,280 음, 플로트가 밝혀 일반적으로 컴퓨터의 내부에 저장 19 00:01:02,280 --> 00:01:03,500 32 비트. 20 00:01:03,500 --> 00:01:07,340 32 분명히 한정된 수의, 인 만 표시 할 수 있음을 의미 21 00:01:07,340 --> 00:01:11,050 32 비트 유한 수에게로 의 부동 소수점 값. 22 00:01:11,050 --> 00:01:14,980 불행하게도, 그 의미 컴퓨터는 모든 가능한을 대표 할 수 없다 23 00:01:14,980 --> 00:01:18,110 부동 소수점 숫자, 실수, 세계에 존재하는, 24 00:01:18,110 --> 00:01:19,980 그것은 단지 많은 비트를 가지고 있기 때문에. 25 00:01:19,980 --> 00:01:23,940 >> 그리고 컴퓨터가 분명히 무엇을의 이 경우 수행 1 / 10를하는 표현된다 26 00:01:23,940 --> 00:01:26,880 가능한 가장 가까운 부동 소수점 값은 수있다. 27 00:01:26,880 --> 00:01:31,050 하지만 우리가 보면, 우리가 여기로, 28 소수 자리는, 우리는 그것을보고 시작 28 00:01:31,050 --> 00:01:31,970 부정확. 29 00:01:31,970 --> 00:01:34,480 그래서이 문제입니다 완벽한 솔루션이 없습니다. 30 00:01:34,480 --> 00:01:38,060 우리는 대신 부동의 두 배를 사용할 수 있습니다 로 64 비트를 사용하는 경향이있는 31 00:01:38,060 --> 00:01:39,410 (32)에 반대했다. 32 00:01:39,410 --> 00:01:42,290 하지만 물론, (64)는 또한 유한 그렇게 문제는 것 33 00:01:42,290 --> 00:01:43,630 도 두배로 남아있다. 34 00:01:43,630 --> 00:01:46,323