ya bırak sayıları üslü sayı iste ha 1 ha 121311531341531351351
abicim öyle cocuksun falan sökmez bunlar izmir kızıyım ben ya anlat...anlatmıcaksan tartışmıcam boş yapıyosunuz
madem sen büyüksün su kücüğün söz büyüğün konuş anlat dinliyorum had metere buyur anlat
Çocuksun çünkü davranışların öyle. Yaşın önemli değil.
İlk örneği MATLAB da yapalım.
x = 0.2;
y = 0.1;
z = x+y;
sprintf ("x = %.17f\ty = %.17f\tz = %.17f",x,y,z);
Workspace e baktığımız zaman her şey normal
Ben x e ne dediysem o da o olmuş, e tabi böyle olacak bilgisayarlar ne dersem onu yapan aptal makinelerdir. Ama sprintf de 17 digit bastırmışım. o de demiş bana?
nasıl ya? hani dediğimi yaparlardı? Üstelik matematikte bu kadar iyi olan süper bi alet hem toplamayı yanlış yapmış hem de x ve y ye dediğim değerleri yanlış atamış. Ama bu kesin ya benim suçumdur ya da MATLAB ın. E hadi MATLABı eleyelim, normalde bunu C ile yapardım ama şimdi C nin de suçu olabilir,
@nt den laf yemeyelim onun favorisini kullanalım.
Bilgisayarımda Python için bir ide vs yok, online kullanacağım.
x = 0.1
y = 0.2
z = 0.1 + 0.2
print(z)
Ya ikisi de aynı outputu verdi, demek ki hata dilde değil.
Hata sende diyebilirsiniz, ama hatanın sebebi şu sınırlı bir memory içinde gerçek bir sayıyı ifade etmeye çalışmanın sonuçları bunlar. Doğal sayılar, sayma sayıları, tam sayılar vs için bunu anlamak çok kolay tabiki, işaretsiz bir sayı tutmak istediğinizi düşünelim 10 bitlik alana sığabilecek sayıyı hesaplamak kolay. Ancak floating sayılara gelince iş çok karışıyor. Standart olarak tanımlanmış değişkenler için olan doğruluklar bir yere kadar güzel işimizi görüyor, ancak gerçekten böyle 10^-17 gibi büyüklüklerde bu değişkenleri kullanmak çok sağlıklı değil.
Neyse konuyu oldukça kirlettik. Ben sana hem indükleme için açıklama yaptım, hem floating sayılar için. Tekrar benimle muhattap olmazsan sevinirim.
@Mikro Step Sende lütfen kusura bakma konunu kirlettim ve amacından saptırdım.