Burada gerçekten iki sorum var.
Neden birileri kayan nokta matematiğine ihtiyaç duyuyor?
Karl Bielefeldt'in belirttiği gibi, kayan nokta sayıları sürekli miktarları modellemenize izin verir - ve bunların her yerini bulursunuz - yalnızca fiziksel dünyada değil, iş ve finans gibi yerlerde bile.
Programlama kariyerimdeki birçok alanda kayan nokta matematiğini kullandım: kimya, AutoCAD üzerinde çalışıyor ve hatta finansal tahminler yapmak için bir Monte Carlo simülatörü yazıyor. Aslında, David E. Shaw adında bir adam var ve Wall Street'e milyarlarca uygulama yapmak için kayan nokta tabanlı bilimsel modelleme tekniklerini uyguladı.
Ve elbette, bilgisayar grafikleri var. Kullanıcı arayüzleri için göz şekeri geliştirmeye danışıyorum ve bugünlerde kayan nokta, trigonometri, analiz ve lineer cebir hakkında katı bir anlayış olmadan bunu yapmaya çalışıyorum, bir çakı ile silahla savaşmak gibi bir şey olurdu.
Neden biri bir çifte karşı yüzmeye ihtiyaç duyar ki ?
IEEE 754 standart gösterimleriyle, 32 bitlik bir kayan nokta size yaklaşık 7 ondalık basamak ve 10 - 38 - 10 38 aralığında üsler verir . 64 bitlik bir çift, yaklaşık 15 ondalık basamak ve 10 - 307 - 10 307 aralığındaki üst düzeyler sunar .
Bir şamandıranın herhangi birinin makul olarak ihtiyaç duyacağı şeyler için yeterli olacağı düşünülüyor olabilir, ama değil. Örneğin, birçok gerçek dünya büyüklüğü 7 ondalık basamağın üzerinde ölçülür.
Ancak, daha zekice, halk arasında "yuvarlama hatası" adı verilen bir sorun var. İkili kayan nokta gösterimleri, yalnızca kesirli kısımları 2, 1/2, 1/4, 3/4, vb. Gibi bir gücü olan bir paydası olan değerler için geçerlidir. 1/10 gibi diğer kesirleri temsil etmek için "yuvarlak" En yakın ikili kesir için değer, ancak biraz yanlış - bu "yuvarlama hatası". O zaman bu yanlış sayılarla matematik yaptığınızda, sonuçlardaki yanlışlıklar başladığınızdan çok daha kötü olabilir - bazen hata yüzdeleri çoğalır, hatta üstel olarak birikebilir.
Her neyse, ne kadar fazla ikili rakamla çalışmak zorundaysanız, yuvarlanmış ikili gösteriminiz, temsil etmeye çalıştığınız numaraya ne kadar yakınsa, bu nedenle de yuvarlama hatası daha küçük olacaktır. Daha sonra üzerinde matematik yaparsanız, üzerinde çalışılacak çok sayıda rakam varsa, kümülatif roundoff hatası bir problemin üzerine çıkmadan önce çok daha fazla işlem yapabilirsiniz.
Aslında, 64 bit 15 basamağıyla iki katına çıkıyor ve birçok uygulama için yeterli değil. 1985 yılında 80 bit kayan nokta sayıları kullanıyordum ve IEEE artık kullanabileceğini hayal edebileceğim bir 128 bit (16 bayt) kayan nokta türü tanımlıyor.