ДЭВИД Малан: Давайте теперь сразит вас наповал. Оказывается, в реальном мире 1 разделенного на самом деле 10 1/10 или 0,1. Но в компьютерах, только конечное Число битов, с которым представлять числа, вы не можете всегда представлять числа как 1/10 с идеально точность. Другими словами, компьютеры иногда имеют совершать звонки суждения и не обязательно отражают номер, который вы хочу настолько точно, насколько вы намерены. Например, предположим, я иду обратно в эта программа и изменить 0,1 до, ой, 0.28, тем самым показывая, что Я хотел бы Printf в Е к 28 мест точности. Давайте теперь сохранить и скомпилировать программу, на этот раз с макияжем floats2. Запустите его с точечной слэш floats2. И, Боже, на этот раз я не вижу 0,1, но 0.10000000, который является довольно хорошо до сих пор. Но тогда, 14901161193847656250. Ну, что происходит? Ну, получается, что поплавок обычно хранится внутри компьютера с 32 бит. 32, очевидно, конечное число, которое означает, что вы можете только представить с 32 бит на конечное число из чисел с плавающей запятой. К сожалению, это означает, что Компьютер не может представлять все возможно числа с плавающей точкой, или действительные числа, что существует в мире, потому что это только имеет так много битов. И так, что компьютер это, по-видимому сделано в этом случае представляют собой 1/10 до ближайший возможно плавающей запятой, это возможно. Но если мы посмотрим, как мы здесь, по 28 знаков после запятой, мы начинаем видеть, что неточность. Так что это проблема с не существует идеального решения. Мы можем использовать на двоих человек вместо поплавка, который имеет тенденцию использовать 64 бита в качестве против 32. Но, конечно, 64 также конечна, так что проблема будет остаются даже с двойниками.