Aslında burada tersi bir durum var. Normalde 31.4 diyip bitirmesi gerekiyor. Elimize hesap makinesi alıp yapsak vereceği sonuç da 31.4.
Fakat burada 31.400000000002 diyor, ilginç geldi bana.
Aynı durum var, ama bilgisayarlar onluk değil ikilik tabanda çalışıyor. Mesela onluk tabanda 0.1 sayısı, onluk tabanda devirsiz iken ikilik tabanda devirlidir.
Sonucu yuvarlıyor olabilir veya asıl amacı en kesin değeri vermek olan ve daha yavaş çalışan algoritmaları kullanıyor olabilir. Sonuçta hesap makineleri insanların kullanması için, uygulamanın yaptığı işlemin aldığı süre kullanıcının giriş yaptığı süreye kıyasla bir hiç.
Konu ile alakalı şurada daha ayrıntılı bir yazı var:
Bu makaledeki terimler ile internette ileri okuma da yapabilirsiniz. Bir de şuraya göz atabilirsiniz:
Teşekkürler cevaplarınız için.
Fakat hesap makinesi olmadan biz bu hesabı elle bile yapsak;
(2 * 3.14* 5 ) işlemi için 31.4 sonucu yoruma açık bir sonuç değil. Söylemek istediğiniz anladım, fakat ilginç geldi. Eğer bu konuda bir kaynak varsa okumak isterim. Tekrar teşekkürler
Bu sayı bizim kullandığımız onluk tabanda devirsiz bir sayı, sınırlı sayıda basamak ile ifade edilebiliyor. Ancak bilgisayarların kullandığı ikilik tabanda devirli bir sayı, sınırlı sayıda basamak ile ifade edilemiyor. Bu yüzden sonuçta kayma var.
Bunun üstesinden gelmenin en garanti yolu pay ve paydası tam sayı olan kesirler kullanmaktır herhalde, bunun için Python’da decimal kütüphanesi var.
Cevaplarınız için çok teşekkürler.
EkremDincel paylaştığı bir video anlamama yarımcı oldu. Çok fazla zaman harcamadan, float ile ilgili kabul edilmesi gereken bir husus olduğunu anladım ve yoluma devam ediyorum