Akademisyenler öncülüğünde matematik/fizik/bilgisayar bilimleri soru cevap platformu
2 beğenilme 0 beğenilmeme
40 kez görüntülendi

Yazdığım kodu aşağıda gönderiyorum. Aynı şekilde dereceden radyana çevirerek de denedim yine de "6.123233995736766e-17" sonucunu alıyorum.

from math import *

print(cos(pi/2))

print(cos(radians(90)))

 

Uygulamalı Bilgisayar Bilimi kategorisinde (19 puan) tarafından  | 40 kez görüntülendi

Bir de şunu deneyin:

a=(0.1+0.2)+0.3
b=0.1+(0.2+0.3)

print(a==b)

 

Bunu ayrı bir soru olarak açsan harika olur.

1 cevap

1 beğenilme 0 beğenilmeme
En İyi Cevap
$\pi$ irrasyonel bir sayı olduğu için, bilgisayarlar kendisini ikilik tabanda tam olarak temsil edemiyorlar, en yakın temsilin de kosinüs karşılığı $0$ olmadığı için böyle bir sorunla karşı karşıya kalınıyor. Benzer bir nedenle, ikilik tabanda sonlu sayıda basamakla yazılamayan rasyonel sayılar için de aynı temsil sorunu olacak. Bu duruma 'floating error point' denir. Bu nedenle yapılan hesaplamalarda doğru yanlışlık kararı verilmesi gerektiğinde çoğunlukla eşitlik testinden geçirmek yerine, bulunan değerin marjinal hatanın ufak olduğu bir aralıkta olup olmadığını kontrol etmek çalışan programlar yazmaya yardımcı olur.
(3.6k puan) tarafından 
tarafından seçilmiş
18,053 soru
20,661 cevap
66,388 yorum
18,746 kullanıcı