Liebe Forenmitglieder,
...wieder eine Verständnisfrage eines Anfängers, mit der Bitte um Hilfe...
Mein eigentliches Ziel war es einen Zufallszahl zwischen 0 und 6 zu generieren - einen Würfelersatz eben.
Zuerst habe ich die Randomzahl mit double deklariert und dann gemerkt, dass das mit dem Runden und dem Abschneiden auf eine Stelle gar nicht so einfach ist(für einen Anfänger).
bin ich
Dann bin ich über folgende Lösung in einem Buch gestolpert.
Die funktioniert zwar hervorragend und macht genau das was ich will...
...ich verstehe aber leider die Syntax gar nicht...
>>> Könnt ihr mir bitte diese ersten zwei Zeilen erklären?
>>> Warum kann man denn den Code nicht wie folgt in zwei Zeilen aufteilen?
>>> Wo in der Java API Docu findet man denn die Definition des Befehls (int) (...was immer das an der Stelle auch ist)?
Vielen Dank & viele Grüße
Berg
...wieder eine Verständnisfrage eines Anfängers, mit der Bitte um Hilfe...
Mein eigentliches Ziel war es einen Zufallszahl zwischen 0 und 6 zu generieren - einen Würfelersatz eben.
Zuerst habe ich die Randomzahl mit double deklariert und dann gemerkt, dass das mit dem Runden und dem Abschneiden auf eine Stelle gar nicht so einfach ist(für einen Anfänger).
bin ich
Java:
package paket1;
import java.lang.Math;
public class Berg
{
public static void main(String[] args)
{
double Zufallszahl_nackt, Zufallszahl, a, b, c;
Zufallszahl_nackt = Math.random();
Zufallszahl = (Zufallszahl_nackt * 5+1);
a = Math.round(Zufallszahl);
b = Math.floor(Zufallszahl);
c = Math.ceil(Zufallszahl);
System.out.println("Zufallszahl_nackt= "+ Zufallszahl_nackt + " liefert eine zufällige Kommazahl zwischen 0 und 1");
System.out.println("Zufallszahl= "+ Zufallszahl + " mit ....*5+1 wird eine Kommazahl zwischen 1 und 6 daraus");
System.out.println("Zahl mit round = "+ a +" rundet ab dem Wert x,5 auf, sonst ab - 'schönes' mathematisches Runden - aber es bleibt eine Kommazahl mit x,0");
System.out.println("Zahl mit floor = "+ b +" liefert die nächst kleinere ganze Zahl, die kleiner oder gleich der Zahl ist");
System.out.println("Zahl mit ceil = "+ c + " liefert die nächst größere ganze Zahl\n");
//Ausagebbeispiel:
//Zufallszahl_nackt= 0.4657391783913212 liefert eine zufällige Kommazahl zwischen 0 und 1
//Zufallszahl= 3.328695891956606 mit ....*5+1 wird eine Kommazahl zwischen 1 und 6 daraus
//Zahl mit round = 3.0 rundet ab dem Wert x,5 auf, sonst ab - 'schönes' mathematisches Runden - aber es bleibt eine Kommazahl mit x,0
//Zahl mit floor = 3.0 liefert die nächst kleinere ganze Zahl, die kleiner oder gleich der Zahl ist
//Zahl mit ceil = 4.0 liefert die nächst größere ganze Zahl
Dann bin ich über folgende Lösung in einem Buch gestolpert.
Die funktioniert zwar hervorragend und macht genau das was ich will...
...ich verstehe aber leider die Syntax gar nicht...
Java:
// Will man eine ganze Zahl (z.B. wie von einem Würfel) dann empfiehlt sich folgende Vorgehensweise
int ZufallInt;
ZufallInt = (int) (Math.random() * 5 + 1);
System.out.println("ZufallInt= "+ ZufallInt);
}
}
>>> Könnt ihr mir bitte diese ersten zwei Zeilen erklären?
>>> Warum kann man denn den Code nicht wie folgt in zwei Zeilen aufteilen?
Java:
z = (int) (Math.random() * 5 + 1);
ZufallInt = (z);
>>> Wo in der Java API Docu findet man denn die Definition des Befehls (int) (...was immer das an der Stelle auch ist)?
Vielen Dank & viele Grüße
Berg