Hallo community!
ich habe hier ein kleines Problemchen, und zwar werden double-Zahlen nach einigen Berechnungen so haesslich wie in der Ueberschrift, z.b. 1.400000001 wobei man eigentlich 1.4 erwarten wuerde!
hier der Code:
Hat jemand Ideen?
Oder geht es vllt.einfacher, eine Kommazahl auf eine gueltige Stelle zu runden? (im Beispiel ist es intX)
Danke!! frager
ich habe hier ein kleines Problemchen, und zwar werden double-Zahlen nach einigen Berechnungen so haesslich wie in der Ueberschrift, z.b. 1.400000001 wobei man eigentlich 1.4 erwarten wuerde!
hier der Code:
Code:
public class test
{
public static void main(String[] args)
{
double intX;
double minX = -2;
double maxX = 2;
int canW = 934;
int pot;
// intX berechnen
intX = (maxX-minX)*40/canW;
System.out.println("intX=" + intX);
// intX auf eine gueltige Stelle runden
for(pot = 0; intX < 1; intX*=10, ++pot)
;
intX = (int)(intX+1); // == Math.ceil(intX);
while(pot-- > 0)
intX /= 10;
System.out.println("intX gerundet=" + intX);
// den Bereich [minX, maxX] in intX-grosse Intervalle aufteilen
for(double i = intX*Math.ceil(minX/intX); i < maxX; i+=intX) {
System.out.println("" + i);
}
}
}
Oder geht es vllt.einfacher, eine Kommazahl auf eine gueltige Stelle zu runden? (im Beispiel ist es intX)
Danke!! frager