Neden kayan nokta sayıları sıfır imzaladı mı?
Neden çiftler -0
0
var mı? Arka plan ve önemi nedir?
CEVAP
-0
(genellikle) 0
olarak kabul edilir*. Bir zaman neden olabilirolumsuzkayan nokta sayısı böylece sıfıra yakın olması kabul 0
(açık olmasını, başvurduğumu arithmetic underflow, ve sonuçların aşağıdaki hesaplamaları vardır yorumlanırtam olarak±0
, sadece çok küçük bir sayı). örneğin
System.out.println(-1 / Float.POSITIVE_INFINITY);
-0.0
Bir ile aynı durumda olduğunu düşünürsekolumlusayı 0
bizim eski güzel alacaksınız:
System.out.println(1 / Float.POSITIVE_INFINITY);
0.0
*Burada bir şey 0.0
kullanırken daha farklı -0.0
sonuçlarını kullanarak bir örnek:
System.out.println(1 / 0.0);
System.out.println(1 / -0.0);
Infinity -Infinity
Bu işlevi düşünürsek mantıklı1 / x
. Gibix
yaklaşımlar 0
-yan, almalıyızolumluyaklaştıkça sonsuz ama-
-yan, almalıyızolumsuzsonsuzluk. Fonksiyonun grafiğinin bu açıkça yapmak gerekir:
(source)
Matematik bir hüküm
Bu 0
ve sayısal anlamda -0
arasında önemli bir fark göstermektedir.
Burada zaten getirilen bazı bazı ilgili kaynaklar. Bütünlüğü uğruna onları ekledim:
- Wikipedia article on signed zero
- "What Every Computer Scientist Should Know About Floating-Point Arithmetic" (Bkz: Sıfır bölüm İmzalanmış)
- (PDF) W. Kahan "Much Ado About Nothing's Sign Bit" - ilginç bir kağıt.
Neden Kayan Nokta Numaraları Yanlış....
Neden kayan nokta sonsuz, NaNs aksine,...
Neden yok't üstel bir artış içine...
Nasıl Javascript bir tam Sayı kayan no...
Nasıl bölüm Python kayan nokta olması ...