2008-12-14 14 views
9

döndüren bir örnek: olması gerektiği gibiÇift değer Burada 0

Double d = (1/3); 
System.out.println(d); 

Bu ... 0, değil 0,33333 döndürür.

Kimse biliyor mu? Aksi yönde talimat olmadığında 1 ve 3, integers olarak kabul edilir çünkü bu

+0

[Java'da Bölme her zaman sıfır (0) ile sonuçlanır?] (Http://stackoverflow.com/questions/10455677/division-in-java-always-results-in- sıfır-0) –

+0

@ ΦXocę 웃 Пepeúpa ツ Bu bir kopya değil. Bu soru, bu sorunun bir kopyasıdır. – Zoe

cevap

38

yüzden 1/3 sonra double0 artığını integer0 olarak değerlendirilir. Bunu düzeltmek için, çift değerlerle uğraştığınızı açıkça belirtmek üzere (1.0/3) veya belki 1D/3'u deneyin.

12

Eğer kayan nokta bölme kullanarak bölmek isteyen int s varsa, intdouble bir yayın yapmak için gerekecek: Aslında

double d = (double)intValue1/(double)intValue2 

(sadece intValue2 döküm olması için yeterli olmalı intValue1 inanıyorum otomatik double için döküm yapılacak.)

1

kullanın çift değil çift bu valu kullanmak gerekir sürece nesne anlamında. kavramları hakkında bilgi edinin

+0

'u işaretlemeden önceki tarihlere bakın. OP, Java'nın kesme yöntemleri hakkında soruyordu ve bir ikilide saklansa bile, tamsayıların bölünmesinin neden kesildiğini soruyordu; Otomatik kutulama hakkında değil. – MathSquared

İlgili konular