DAVID Malan: Let 's tagad trieciens jūsu prātā. Izrādās reālajā pasaulē 1 dalīts līdz 10 patiešām 1/10, vai 0.1. Bet datoriem, kas ir tikai ierobežots bitu skaitu, ar kuru pārstāvēt ciparus, jūs ne vienmēr var pārstāvēt numurus, piemēram, 1/10, ar perfekta precizitāte. Citiem vārdiem sakot, datori dažkārt veikt jurisprudences un nav vienmēr atspoguļo to, cik jūs vēlaties, kā precīzi, kā jūs plānojat. Piemēram, pieņemsim, ka es dodos atpakaļ šī programma un mainīt 0.1 līdz, oh, 0.28, tādējādi norādot, ka Es gribētu printf printf 28 vietas precizitāti. Pieņemsim tagad glābt un sastādīt programmu, šoreiz ar make floats2. Palaist to ar dot slash floats2. Un dārgais Dievs, šoreiz es redzu ne 0.1, bet 0.10000000, kas ir diezgan labi līdz šim. Bet tad, 14901161193847656250. Nu, kas notiek? Nu, izrādās, ka pludiņš ir parasti glabājas iekšpusē datoru ar 32 bitiem. 32 ir acīmredzami ierobežots skaits, kas nozīmē, ka jūs varat tikai pārstāvēt ar 32 bitu noteiktu skaitu no peldošā punkta vērtības. Diemžēl, tas nozīmē, ka dators nevar pārstāvēt visas iespējamās peldošā komata skaitļus, vai reāli skaitļi, kas pastāv pasaulē, tāpēc, ka tas ir tikai tik daudz bitiem. Un tā, ko dators ir acīmredzami izdarīts šajā gadījumā ir sastāda 1/10 to iespējami tuvākā peldošā punkta vērtība, ka tā var. Bet, ja mēs skatāmies, kā mēs esam šeit, lai 28 zīmēm aiz komata, mēs sākam redzēt, ka neprecizitāte. Tātad šī ir problēma ar nav ideāls risinājums. Mēs varam izmantot dubultu vietā pludiņa, kas mēdz izmantot 64 bitu kā nevis 32. Bet, protams, 64 arī ir ierobežots, tāpēc problēma paliek pat ar dubultspēlēs.