(Not: Bunları yazarken üstten taşma kavramını gözardı ediyorum.)
(Ek: "binde 4"ü "250'de bir", "binde 3"ü de "300'de bir" olarak değiştirdim.)
Evet, virgüllere geçince olayın içine ifade edilememe kavramı da giriyor. Bunu onlu sistemde de görebiliriz. Bir değere "250'de bir" eklediğimizde tek sorun yaşama olasılığımız vardır: duyarlık. Eğer sonuç virgülden sonra 2 hane ile kısıtlıysa, örneğin 12345 gibi bir değere "250'de bir" eklediğimizde 12345.00 elde ederiz. Ama bu, yalnızca duyarlık nedeniyledir, çünkü 0.004 değeri onlu sistemde tam olarak ifade edilebilir. Duyarlık arttırılıp virgülden sonra 3 haneye çıktığında sonuç 12345.004 olur ve yine tam doğrudur.
Şimdi tam olarak ifade edilememe kavramına geçiyorum. Yine onlu sistemdeyiz. Bir değere "300'de bir" eklemek istediğimizde artık iki tür sorun var: duyarlık ve tam olarak ifade edilememe. 12345 sayısına "300'de bir" eklendiğinde ve duyarlık virgülden sonra 2 hane olduğunda yine 12345.00 elde ederiz. Ama duyarlığı ne kadar arttırırsak arttıralım, tam olarak ifade edilememe sorununu aşamayız. 12345.00333333333 bile yazsak bir yerden sonra hatalıdır.
İşte aynı sorun ikili sistemde de var. Bilgisayarlarda 0.1 gibi bir değer tam olarak ifade edilemez. Virgülden sonra tam olarak ifade edilebilen değerler, şu değerlerin karışımı olan değerlerdir:
'1/2 = 0.5
1/4 = 0.25
1/8 = 0.125
vs.'
Salih, eğer virgülden sonraki değerlerle denemek istiyorsan ve yalnızca duyarlıkla ilgileniyorsan virgülden sonrası için 0.625 gibi tam olarak ifade edilebilen kesirli değerler kullanmanı öneririm.
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]