Hallo Leute,
habe kurz eine Frage zum Thema "Typecasting":
Ziel ist es eine Ganzzahlige Zufallszahl (Integer, also ohne kommastellen) zu erzeugen.
Versuch 1:
static void zahl1(){
double min = 0;
double max = 10;
double value = (int) Math.round((min + (max - min) * Math.random()));
jLabel1.setText(Double.toString(value));
}
==> Dieser Versuch hat leider nicht geklappt, da die zahl zwar gerundet worden ist aber immer noch als Double angezeigt wird (Bsp.: 4.0). Die Frage ist Warum das der Fal ist, wenn vor der math Funktion schon in Integer umgewandelt habe?
Nach längerem ausprobieren: Versuch 2:
static void zahl1(){
double min = 0;
double max = 10;
double value = Math.round((min + (max - min) * Math.random()));
int valueInt = (int) value;
jLabel1.setText(Integer.toString(valueInt));
}
==> Hat geklappt! Scheint mir aber Irgendwie umständlich da noch eine Variablle (valueInt) mit rein zu
nehmen.
Jetzt die Frage, ob es so OK ist oder ob es eine sauberere/elegantere Methode gibt?
Vielen Dank schon im vorraus.
Hernando
habe kurz eine Frage zum Thema "Typecasting":
Ziel ist es eine Ganzzahlige Zufallszahl (Integer, also ohne kommastellen) zu erzeugen.
Versuch 1:
static void zahl1(){
double min = 0;
double max = 10;
double value = (int) Math.round((min + (max - min) * Math.random()));
jLabel1.setText(Double.toString(value));
}
==> Dieser Versuch hat leider nicht geklappt, da die zahl zwar gerundet worden ist aber immer noch als Double angezeigt wird (Bsp.: 4.0). Die Frage ist Warum das der Fal ist, wenn vor der math Funktion schon in Integer umgewandelt habe?
Nach längerem ausprobieren: Versuch 2:
static void zahl1(){
double min = 0;
double max = 10;
double value = Math.round((min + (max - min) * Math.random()));
int valueInt = (int) value;
jLabel1.setText(Integer.toString(valueInt));
}
==> Hat geklappt! Scheint mir aber Irgendwie umständlich da noch eine Variablle (valueInt) mit rein zu
nehmen.
Jetzt die Frage, ob es so OK ist oder ob es eine sauberere/elegantere Methode gibt?
Vielen Dank schon im vorraus.
Hernando