Announcement

Collapse
No announcement yet.

int x = (int) Math.random(); ergibt immer 0

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • int x = (int) Math.random(); ergibt immer 0

    Hallo, folgendes Problem: Die Codezeilen

    Code:
    double rnd1 = Math.random();
    ...
    int randomTest = (int) rnd1 * 3;
    System.out.println("randomTest: " +rnd1 +" * 3 = " +randomTest);
    ...
    geben zum Beispiel folgende Ausgabe:

    randomTest: 0.9542083808894308 * 3 = 0

    Warum ist denn (int) 0.95 * 3 == 0?

  • #2
    Weil du es in einen int castest und einem int zuweist 3 x 0 = 0
    Christian

    Comment


    • #3
      D'ou
      Danke.

      Richtig ist also:

      Code:
      int randomTest = (int) (rnd1 * 3);
      Dann ergibt auch int x = (int) (0.95 * 3) wieder 2 wie sich das gehört.

      Comment

      Working...
      X