DAVID Malan: Pojďme nyní foukat vaši mysl. Ukazuje se, že v reálném světě 1 rozděleného od 10 je skutečně 1/10, nebo 0.1. Ale v počítačích, které mají omezené pouze počet bitů, se kterým představují čísla, můžete vždy představují čísla jako 1/10 s perfektní přesnost. Jinými slovy, počítače někdy aby úsudek volání a ne nutně představovat číslo, které Chcete-tak přesně, jak máte v úmyslu. Předpokládejme například, že jsem se vrátit do tento program a změňte 0,1 k, oh, 0,28, což naznačuje, že Rád bych printf printf na 28 míst přesnosti. Pojďme nyní uložit a zkompilovat program, tentokrát s make floats2. Spusťte ho s dot lomítka floats2. A bože, to když vidím to 0,1, ale 0.10000000, což je docela dobrý tak daleko. Ale pak, 14901161193847656250. No, co se děje? No, ukázalo se, že plovák je obvykle uloženy uvnitř počítače s 32 bity. 32 je zřejmě konečné číslo, které znamená, že můžete představovat pouze s 32 bity konečným počtem plovoucí čárkou. Bohužel, to znamená, že Počítač nemůže reprezentovat všechny možné čísla s plovoucí desetinnou čárkou, nebo reálná čísla, které existují ve světě, , protože to má jen tolik bitů. A tak to, co počítač je zřejmě provádí v tomto případě představovat 1/10 až nejbližší možný plovoucí Bodová hodnota, že může. Ale když se podíváme, jak jsme tady, na 28. desetinná místa, začneme vidět, že nepřesnost. Takže se jedná o problém s žádné dokonalé řešení. Můžeme použít double místo float, který inklinuje k použití 64 bitů jako na rozdíl od 32. Ale samozřejmě, 64 je také konečný, takže problém bude zůstávají i při čtyřhře.