SORU
2 EYLÜL 2011, Cuma


Neden Matematik yapıyor.döndürür bir double ceil?

Bu biraz bir döngü için beni attı. Math.ceil(5.2) aradığımda dönüşdouble 6.0. Benim doğal eğim Math.ceil(double a) long geri geleceğini düşünüyorum. Gelen belgeleri:

ceil(double a)

Döner en küçük (negatif sonsuzluk çok yakın) double değer bu daha az değişken ve matematiksel eşittir tamsayı.

Ama neden sonuç bir tamsayı olduğunda long yerine double bir dönüş? Bu acil bir soru değil, ama bunun arkasındaki nedeni anlamak beni anlamak biraz daha iyi Java yardımcı olabileceğini düşünüyorum. O da bana eğer başıma alırım diye düşünüp*, örneğin *10. döküm yardımcı olabilir

long b = (long)Math.ceil(a);

her zaman ne olması gerektiğini düşünüyor? Sorunlu olan bazı sınır vakası olabilir diye korkuyorum.

CEVAP
2 EYLÜL 2011, Cuma


double aralığı long daha fazla. Örneğin:

double x = Long.MAX_VALUE;
x = x * 1000;
x = Math.ceil(x);

Eğer Math.ceil long iade yapmak son satırı ne beklenir ki?

Unutmayın en büyük değerler (pozitif veya negatif) sayıları sonunuzun dağıtılmış çok seyrek - yani bundan sonraki tamsayı büyük tamsayı x olmayacak x 1 görürseniz ne demek istediğimi.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ionized Digital Air Studios

    Ionized Digi

    20 HAZİRAN 2009
  • kndx

    kndx

    11 Mart 2006
  • Semantic Mastery

    Semantic Mas

    30 EKİM 2013