Prozentberechnung

  • Win

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

  • Prozentberechnung

    Hallo zusammen, habe nach längerer Zeit mal wieder zwei Frage.

    1. ich habe eine Variable z.B. global.aaa = 10000
    Nun möchte ich das sich dieser Wert über random um -25% bis +25% ändert.

    2. ich habe eineVariable z.B. global.aaa. = 30
    Diese soll sich per Zufall prozentual auf global.bbb und glabal.ccc aufteilen. globall.aaa soll dann den Wert "0" haben.

    Vielen Dank schonmal für eure Hilfe
  • Ich hoffe ich habe dich richtig verstanden.

    Zu 1.

    GML-Quellcode

    1. rand = irandom(50) // Für ganze Zahlen irandom benutzen
    2. if rand > 25
    3. global.aaa += rand *100 // *100, da du ja nicht 100 sondern 10000 benutzt
    4. if rand < 25
    5. global.aaa -= rand *100



    Zu 2.

    GML-Quellcode

    1. rand = irandom(100) / 100
    2. global.bbb = global.aaa / rand
    3. global.ccc = global.aaa - global.bbb



    Geht mit sicherheit noch einfacher. :rolleyes:

    Gruß Bartl
    Drei Arten von Männern versagen im Verstehen der Frauen:
    junge Männer, Männer mittleren Alters und alte Männer.

    irisches Sprichwort
  • GML-Quellcode

    1. global.aaa *= random_range(0.75, 1.25);


    Prozentrechnung ist nicht anderes als x * p / 100 (p% = p / 100), 0.75 heißt 3/4 (also 75%) sollen übrig bleiben und 1.25 heißt 1 + 1/4 (also 125%). Beispiel: wenn du die Mehrwertsteuer von 19% auf einen Betrag rechnen willst, kannst du einfach Betrag * 1,19 rechnen.

    GML-Quellcode

    1. var temp;
    2. temp = random(1); // 100 Prozent = 1
    3. global.bbb = global.aaa * temp;
    4. global.ccc = global.aaa * (1 - temp);
    5. //global.ccc = global.aaa - global.bbb geht auch
    6. global.aaa = 0; //zurück setzen
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von henrik1235 ()

  • Ich war mir nicht sicher wieviel Stellen random() nach dem Komma hat.
    Da hab ich dann auch wieder was gelernt 8o

    Bei 1.) war ich mir nicht sicher ob er komplett um 25% oder in einzelschritten agieren will.

    Gruß Bartl
    Drei Arten von Männern versagen im Verstehen der Frauen:
    junge Männer, Männer mittleren Alters und alte Männer.

    irisches Sprichwort
  • Vielen Dank für deine Hilfe. Habe diese nochmal abgeändert, damit es auch eine wirkliche prozentrechnung ergibt. So klappt es allerdings prime. Da global.aaa ja nicht immer 10000 ist.

    rand = irandom(50)
    if rand > 25
    global.aaa = global.aaa/100 * rand/2 + global.aaa

    Genau so habe ich mir das Vorgestellt. Danke dir.

    Jetzt habe ich allerdins noch das Problem das global.aaa durch die Prozentrechnung auch Nachkommestellen bekommen kann. Das soll allerdings nicht. Wie kann ich es einstellen das die Zahl einfach abgerundet wird???

    Edit: War zu langsam. @ Henrik: Das ist ja noch simpler. Macht ja auch Sinn. Manchmal steht man auf dem Schlauch. Jetzt brauche ich nur noch global.aaa als Ganzzahl.
  • Du kannst mit folgenden Funktionen Zahlen runden, abrunden oder aufrunden:

    round(x) Gibt x gerundet auf den nächsten Integer wieder.
    floor(x) Gibt x abgerundet auf den nächsten Integer wieder.
    ceil(x) Gibt x aufgerundet auf den nächsten Integer wieder.

    gm-d.de/help/hh_start.htm?402_02_real.html
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Die Funktionsbeschreibung sagt, dass der gerundete Wert zurück gegeben wird:

    GML-Quellcode

    1. show_message(round(3.141));


    GML-Quellcode

    1. var t;
    2. t = 3.141;
    3. show_message(round(t));


    Du musst also den Wert der round zurück gibt auch wieder nutzen, heißt wenn du global.aaa runden willst:

    GML-Quellcode

    1. global.aaa = round(global.aaa);
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%