1 00:00:00,000 --> 00:00:00,310 2 00:00:00,310 --> 00:00:01,750 >> ДЭВИД Малан: Давайте теперь сразит вас наповал. 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 в Е к 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 Но тогда, 14901161193847656250. 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