SORU
29 HAZİRAN 2010, Salı


Tamsayı bölme Java: Nasıl bir çift üretiyorsunuz?

int num = 5;
int denom = 7;
double d = num / denom;

Bu 0 olur. Bu çalışmayı yaparak zorlayabilir biliyorum

double d = ((double) num) / denom;

ama başka bir yolu olmalı değil mi? Ne olduğu bilen döküm ilkel, sevmiyorum.

CEVAP
29 HAZİRAN 2010, Salı


double num = 5;

Bir döküm önler. Ama cast dönüşüm iyi tanımlanmış olduğunu göreceksiniz. Sadece JLS kontrol sanırım gerek yok. çift int genişleyen bir dönüşüm. §5.1.2:

Genişleyen ilkel dönüşüm yok genel hakkında bilgi kaybedersiniz sayısal bir değer büyüklüğü.

[...]

Bir int ya da long bir değer dönüştürme uzun bir değeri yüzer, ya da , kaybına neden çift hassas, sonuç kaybedebilirsiniz. en az önemli bit bazı değer. Bu durumda, elde edilen kayan nokta değeri olacak bir bu doğru yuvarlanan sürüm tamsayı değeri, IEEE 754 kullanarak -yuvarlak en yakın modu (§4.2.4).

5 tam olarak bir çift ifade edilebilir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 8lacKy

    8lacKy

    30 Mart 2009
  • hidetake takayama

    hidetake tak

    3 Mart 2009
  • Mismag822 - The Card Trick Teacher

    Mismag822 -

    18 EKİM 2008