Float değişkenlerle ilgili bir algoritma sorusu

public class Deneme {
static float deneme = 1000;
public static void main(String[] args) {
	for(int i = 1; i < 100 ; i++) {
		deneme -= 1.6;
		System.out.println(deneme);
	}	
}

}
Kısaca anlatmak için yeni projede böyle yazdım kodu bu koddan beklentim
98.4
96.8
95.2 olarak devam etmesi ama
ÇIKTI
998.4
996.80005
995.2001
993.6001
992.0001
990.40015
988.8002
987.2002
985.6002
984.00024
982.40027 böyle gidiyor. Bilgisayarın çalışma presibinden dolayı ondalık kısmın bir sınırı olmasını anlıyorum ve sanırım floatta bu sınır 6. Bu sınır yüzünden mi çıktı böyle oluyor? Ve Kodu nasıl ilk bahsettiğim çıktıyı verecek şekilde düzenlerim?

Merhaba,

Şöyle yapabilirsiniz:

import java.lang.Math;

public class Deneme {
    static float deneme = 1000;
    public static void main(String[] args) {
	    for(int i = 1; i < 100; i++) {
		    deneme -= 1.6;
		    System.out.println(Math.round(deneme * 100.0) / 100.0);
	    }	
    }
}
3 Beğeni

deneme değişkeninin değeri 100 olması gerek. İstediğiniz cıktının alınabilmesi için.

System.out.printf("%.1f\n",deneme);

Olarak değiştirirseniz, noktadan sonraki kesirli sayının tamamı yerine bir adet gösterilir. format specifier ( format belirleyicisi) anahtar kelimesi ile daha cok bilgiye ulaşabilirsiniz

2 Beğeni