DAVID MALAN: indi sizin fikrinizi əsəcək edək. Bu bölünür real dünyada 1 çıxır 10 1/10 və ya 0,1 həqiqətən. Lakin kompüter yalnız məhdud var ki, bit sayı ilə nömrələri təmsil, siz həmişə bilməz 1/10 kimi nömrələri təmsil mükəmməl dəqiq. Başqa sözlə, kompüter bəzən qərar zənglər və etmək mütləq sayı təmsil kimi dəqiq niyyətində kimi istəyirəm. Məsələn, mən geri getmək Güman Bu proqram və 0.1 dəyişdirmək, oh, 0.28, bununla ifadə edən Mən printf printf istəyirəm Dəqiq 28 yerləri. İndi saxlamaq və proqram tərtib edək, etmək floats2 ilə bu dəfə. Dot çizgi floats2 ilə Run. Və əziz Allah, mən 0.1 görmürəm bu dəfə, lakin olduqca olan 0.10000000, Bu günə qədər yaxşı. Amma sonra, 14901161193847656250. Yaxşı, nə olub? Bəli, bu bir float çıxır ki adətən kompüter daxilində saxlanılır 32 bit ilə. 32 açıq-aydın bir sonlu sayı, olan yalnız təmsil edə bilər ki, nəzərdə tutur 32 bit məhdud sayda ilə point dəyərləri üzən. Təəssüf ki, o deməkdir ki, kompüter bütün mümkün təmsil edə bilməz üzən point nömrələri, və ya real nömrələri, dünyada mövcud ki, yalnız çox bit var. Və belə ki, kompüter yəqin nə var Bu halda görülən 1/10 təqdim edir ən yaxın üzən point dəyər ola bilər ki,. Amma biz baxsaq, biz burada var, 28 decimal yerləri, biz görmək başlamaq qeyri-dəqiqlik. Belə ki, bu bir problem deyil Heç bir mükəmməl həll. Biz əvəzinə bir float ikiqat istifadə edə bilərsiniz 64 bit istifadə etmək niyyətindədir 32 fərqli. Amma əlbəttə, 64, həmçinin sonlu belə problem olacaq hətta dubl qalır.