SORU
27 Ocak 2009, Salı


Güvenli C 0 için eşitlik için kayan nokta değerleri#/kontrol etmektir.NET?

Çift Kişilik veya ondalık değerleri yazın eşitliği normalde güvenilir bir şey değil biliyorum, ama eğer 0 özel bir durum olup olmadığını merak ediyorum.

0.00000000000001 ve 0.00000000000002, 0 arasında imprecisions anlayabiliyorum ederken, çok zor bir şey olduğu için berbat görünüyor kendisi. Eğer bir şey hakkında belirsiz iseniz, hiçbir şey değil artık.

Ama benim için değil o yüzden bu konu hakkında pek bir şey bilmiyorum.

double x = 0.0;
return (x == 0.0) ? true : false;

Bu her zaman doğru dönecek?

CEVAP
27 Ocak 2009, Salı


güvenlibekliyoruz karşılaştırma döndürür true Eğer ve sadece iki değişken vardır değeri tam olarak 0.0 (hangi orijinal kod parçası, elbette, durum). Bu == operatör anlamı ile tutarlıdır. a == b demek "a b eşittir".

güvenli değil(çünküdoğru değilbazı hesaplama sonucu sıfır Çift (ya da, genellikle, daha fazla kayan nokta ) olacağını tahmin etmek matematiksel aynı hesaplama sonucu sıfır olduğunda aritmetik. Bu hesaplamalar yere geldiğinde, kayan nokta hassas hata görünür, çünkü, söylemeye gerek yok, Gerçek sayı olmayan bir kavram Matematik aritmetik.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3biblecom

    3biblecom

    23 NİSAN 2011
  • BuzzFeedVideo

    BuzzFeedVide

    10 AĞUSTOS 2011
  • infodirt

    infodirt

    11 Mart 2009