double pay=1;

System.out.println(Math.pow(16807,(pay/5)));

kodunun çıktısı:7.000000000000001 şeklinde oluyor nasıl böyle bir dönüt verebilir. o sondaki 1 nerden geliyor?

soruldu: 26 Tem '13, 14:09

mertkans's gravatar image

mertkans
1223
cevap kabul oranı: 0%

değiştirildi: 07 Ağu '13, 06:32

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Java'da double ın tutulma şekli ile alakalı bir durum bu. O nedenle Java'da çok hassas sayılarla işlem yapıyorsanız Double yerine BigDecimal sınıfını kullanın. Double kullanmak istiyorsanız bulduğunuz sonuçları yuvarlamanız gerek. Bunu da DecimalFormat kullanıp sayının virgülden sonraki belli bir kısmını atarak ya da yine BigDecimal sınıfının setScale metodunu kullanarak yapabilirsiniz.

SO dan benzer konuda bir soru, Java'da klasik sorulan şeylerden biridir bu olay:

http://stackoverflow.com/questions/322749/retain-precision-with-doubles-in-java

permanent link

cevaplandı: 26 Tem '13, 17:25

uyilmaz's gravatar image

uyilmaz
413
cevap kabul oranı: 0%

değiştirildi: 26 Tem '13, 17:26

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,077
×3
×1
×1

Soruldu: 26 Tem '13, 14:09

Görüntüleme: 558 kez

Son güncelleme: 07 Ağu '13, 06:32

powered by BitNami OSQA