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

  • David Wills

    David Wills

    31 Aralık 2007
  • DroidModderX ROOT Master

    DroidModderX

    14 ŞUBAT 2011
  • The Fashion Sight

    The Fashion

    22 AĞUSTOS 2011