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

  • 3DS Max Tutorials

    3DS Max Tuto

    4 AĞUSTOS 2013
  • MotoManTV

    MotoManTV

    10 Aralık 2009
  • segtlim

    segtlim

    21 EKİM 2008