SORU
24 HAZİRAN 2011, Cuma


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
24 HAZİRAN 2011, Cuma


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)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • krotoflik

    krotoflik

    26 ŞUBAT 2011
  • THE RED DRAGON

    THE RED DRAG

    6 ŞUBAT 2009
  • TheRightTire

    TheRightTire

    14 EKİM 2009