Präzision bei Java - Problem

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Präzision bei Java - Problem

    Hallo ich habe folgendes Problem: Das Programm berechnet den sinus von i*PI /4:

    Quellcode

    1. package u;
    2. public class A1 {
    3. public static void mathFormula1()
    4. {
    5. for (double i =5; i>=0; i=i-0.25)
    6. {
    7. if (i==4.0)
    8. System.out.println(i+"\t"+0.0);
    9. else
    10. System.out.println(i+"\t"+Math.sin(i* Math.PI/4));
    11. }
    12. }
    13. }
    Alles anzeigen

    Mein Porgramm gibt bei der 4.0 eine seltsame Zahl aus deshalb die if-else schliefe! Das Problem dabei ist, wenn man die for- Schleife anstatt 0.25 Schritte auf 0.1 Schritte runterzaehlen lässt, wird das Ergebnis bei der 4 nicht 0.0 sondern wieder eine seltsame Zahl, wie schaffe ich es trozdem, dass dort die 0.0 steht?
  • 1. Gibt es keine if-Schleifen. Ne Schleife wird immer wiederholt.
    2. Bei mit bekomm ich bei 4.0 keine komische Zahl, sondern 0.0

    5.0 -0.7071067811865475
    4.75 -0.555570233019602
    4.5 -0.38268343236508967
    4.25 -0.19509032201612836
    4.0 0.0
    3.75 0.1950903220161286
    3.5 0.3826834323650899
    3.25 0.5555702330196022
    3.0 0.7071067811865476
    2.75 0.8314696123025453
    2.5 0.9238795325112867
    2.25 0.9807852804032304
    2.0 1.0
    1.75 0.9807852804032304
    1.5 0.9238795325112867
    1.25 0.8314696123025452
    1.0 0.7071067811865475
    0.75 0.5555702330196022
    0.5 0.3826834323650898
    0.25 0.19509032201612825
    0.0 0.0