Wird vielleicht einfach sein, aber ich weiß nicht weiter. Wie kann ich eine zufällige Kommazahl generieren?
bspw. rand = random(0.3);
das es ebend 0.1, 0.2 und 0.3 gibt.. wäre über Hilfe dankbar
Wird vielleicht einfach sein, aber ich weiß nicht weiter. Wie kann ich eine zufällige Kommazahl generieren?
bspw. rand = random(0.3);
das es ebend 0.1, 0.2 und 0.3 gibt.. wäre über Hilfe dankbar
Du kannst einfach eine Randomzahl generieren und diese dann durch 10 dividieren.
new Float:zahl;
zahl = float(random(3)/10);
Dann hast du eine Fließkomma-Zufallszahl mit entweder 0.0, 0.1, 0.2 oder 0.3.
Kann ich die Kommazahl auch abfragen?
bspw: if(zahl == 0.1) ?
oder in einer anderen methode?
Selbstverständlich, die zahl ist eine ganz normale Variable.
warning 213: tag mismatch
Zeile:
if(zinsenprozent == 0.0)
Edit: Hab den Fehler selbst gefunden, ich danke dir für deine Hilfe
Ist zinsenprozent als Float deklariert?
Neues Problem:
Ich setzte die Zinsen auf eine Zufällige Kommazahl: (durch ein Befehl)
ziensenprozent = Float:(random(3)/10);
Frage die Zahl ab (die soll er Ingame dann anzeigen):
if(zinsenprozent == 0.0) { zprozent = "0,0"; }
if(zinsenprozent == 0.1) { zprozent = "0,1"; }
if(zinsenprozent == 0.2) { zprozent = "0,2"; }
if(zinsenprozent == 0.3) { zprozent = "0,3"; }
aber ausgegeben und angezeigt wird immer nur 0,0 (%s)
Jemand eine Lösung evtl?
benutz doch %f so kannst du floats direkt in formats übergeben.
benutz doch %f so kannst du floats direkt in formats übergeben.
Nun wird: 0.00000 ausgegeben statt der eigentlichen Kommazahl
ziensenprozent = random(3)/10;
ist die variable zinsenprozent als float deklariert?
new Float:zinsenprozent;
1. Wenn du schon keine switch dafür verwendest, mach es doch bitte per if und else if denn wenn zinsprozent 0.1 ist ist die Abfrage beendet. In deinem Fall wird gefragt:
Ist zinsprozent 0.0 . . . NEIN!
Ist zinsprozent 0.1 . . . JA!
Ist zinsprozent 0.2 . . .NEIN!
Ist zinsprozent 0.3 . . . NEIN!
Wenn zinsprozent 0.1 ist ist es logischerweise weder 0.2 noch 0.3 also kannst du ganzeinfach die restlichen abfragen überspringen und zwar so:
if(zinsenprozent == 0.0) { zprozent = "0,0"; }
else if(zinsenprozent == 0.1) { zprozent = "0,1"; }
else if(zinsenprozent == 0.2) { zprozent = "0,2"; }
else if(zinsenprozent == 0.3) { zprozent = "0,3"; }
//weiter im Code
Ist zinsprozent 0.0 . . . NEIN!
Wenn nicht, Ist zinsprozent 0.1 . . . JA!
Weiter im Code.
Damit sparst du Ressourcen.
2. mit random (3) erstellst du eine Zufallszahl zwischen 0 und 2 [0,1,2] nun kannst du entweder sagen, du willst eine zahl zwischen 0.1 und 0.3 (ohne 0.0) dann machst du folgendes:
zinsprozent = (randon(3) + 1) /10; // Erstellt eine zahl zwischen 0-2 mit +1 erweiterst du die zahlen nun hast du eine Zahl zwischen 1-3 und dank Punkt vor strich musst du alles in der Klammer mit 10 Dividieren.
Oder du willst eine Zufallszahl zwischen 0-3 [0,1,2,3] dann musst du 4 Zahlen erstellen:
zufallszahl = random(4)/10;
//EDIT: und zu deinen Nachkommastellen, ersetze %f durch %2f, die 2 steht für 2 Stellen nach dem Komma.
und zeig mir bitte, wie die variable zprozent definiert ist.
Funktioniert alles, danke trotzdem für deine Erklärung carlos