dönüştürme java tamsayı çift
Java, bir tamsayı için bir çift dönüştürmek istiyorum, eğer bunu yaparsanız biliyorum:
double x = 1.5;
int y = (int)x;
y=1 olsun. Eğer bunu yaparsanız:
int y = (int)Math.round(x);
Muhtemelen 2 vereceğim. Ancak, ben merak ediyorum: tamsayılar çift temsilleri bazen 1.9999999998 ya da bir şey gibi görünüyor bu yana, bir çift döküm Matematik yoluyla oluşturulan bir olasılık var.() yuvarlak hala arıyoruz yuvarlak sayı (örneğin: temsil gibi kod) 2 yerine 1 ? yerine aşağı kesilmiş bir sayı gelir
(ve evet, gibi demek istiyorum: oradaherhangi birx, y x Yuvarlak bir temsil yerine bir kesiliyor bir sonucu olduğu için değer mi?)
Eğer daha iyi bir yol kesme riski olmadan çalışan yuvarlak bir int içine bir çift olun.
Anladım bir şey var: Matematik.round(x) bir uzun, bir çift verir. Dolayısıyla imkansız: Matematik.() yuvarlak bir rakam 3.9999998. benzeyen dönmek için Bu nedenle, int(Math.() yuvarlak) hiç bir şey kesmek gerekir, ve her zaman çalışır.
CEVAP
bir çift
Math.round()
ile yaratılan döküm hala kesilmiş bir sayıda neden olacak bir olasılık var
Hayır round()
her zaman doğru değerine çift yuvarlak olacak, ve daha sonra, herhangi bir ondalık keser long
bir atama olacak. Ama yuvarlama sonra, herhangi bir kesirli bölümleri kalan olmayacak.
Burada Math.round(double)
dokümanlar:
En yakın argüman için uzun verir. Sonuç 1/2, sonucu yere götürüyor ve uzun yazın için sonuç döküm ekleyerek bir tamsayıya yuvarlanır. Diğer bir deyişle, sonuç ifadenin değerine eşittir:
(long)Math.floor(a 0.5d)
Tamsayı bölme Java: Nasıl bir çift üre...
Dökme Java Tamsayı Çift...
Java: Liste dönüştürme en İyi yolu<...
Rastgele oluşturuluyor Java ile bir ar...
Java " verimliliği;Çift Başlatma&q...