Archiv verlassen und diese Seite im Standarddesign anzeigen : Variablen Runden
Teufelsauge
03.09.2007, 16:55
Ich entschuldige mich im vorraus wenn es ein solches Thema schon mal gab nur die Boardsuche hat mir auf die frage variablen Runden Soviel ausgespuckt dass ich den überblick verlor und google war nich viel besser.
Kann mir irgendjemand sagen, wie ich im Rpg Maker 2k variablen auf ganze zahlen runden kann? also so, dass die nachkommastellen echt! gerundet werden.
Danke im vorraus
Teufelsauge
Pantoffelninja
03.09.2007, 17:19
Kommt auf die Nachkommastelle an, also wie groß der ist.
Ich würde es so machen:
-Erstelle eine zusätzliche Variable.
-Setze die Zahl, die geteilt werden soll, in diese Variable ein.
-Die Originalzahl teilst du normal.
-Bei der neuen Variable verwendest du den Rechenbefehl "Mod" und benutzt die gleichen Zahl wie bei der normalgeteilten Variable, dadurch wird dividiert und es werden nur die Stellen nach den Komma angezeigt.
-Prüfe per Fork diese Variable, ob sie 10 oder größer sind, und teile sie dann mit "/". Wiederhole den Vorgang, bis du kleiner als 10 hast.
-Prüfe, ob die daraus folgende Zahl 5 oder größer ist. Wenn dies der Fall ist, +1 zu der normalgeteilten Zahl.
Damit gibt es zwar keine Erhöhung bei Kommazahlen zwischen x.4[0]1 und x.4[9]9 ([n] steht für eine periodische Folge), aber ich denke, das ist zu verkraften.
Ich frage mal aus Neugier: Wofür brauchst du denn echt gerundete Variablen?
Teufelsauge
03.09.2007, 19:35
Ich entwickle ein eigenes KS mitsamt Menü.
Meine Werte Lebenspunkte, Körperkraft, Schaden, ... basieren auf mathematischen Formeln die ich durch probieren und überlegen rausgefunden habe aber für eine dieser formeln brauche ich echt gerundete Variabeln.
wen es dich genauer interresiert schick ich dir die formeln per PN oder poste sie hier
Oh sry ich stelle grade fest ich bin im falschen forum... peinlich peinlich aber trotzdem oder grade deswegen danke
übelster Held
03.09.2007, 20:57
zitat pantoffelheld:
"Prüfe per Fork diese Variable, ob sie 10 oder größer sind, und teile sie dann mit "/". Wiederhole den Vorgang, bis du kleiner als 10 hast.
Prüfe, ob die daraus folgende Zahl 5 oder größer ist. Wenn dies der Fall ist, +1 zu der normalgeteilten Zahl."
gehts du jetzt davon aus, dass mod die nachkommazahl in der variable speicherst?
also 7/2= 3,5 und 7mod2 = 5 ?
denn 7mod2 ist eigentlich 1...
das heißt, die zahl muss aufgerundet werden, wenn der wert
den man aus xmody größergleich als (y-1)/2 ist...
da man aber wieder durch 2 rechnen muss zur prüfung und da wieder ,5 rauskommen kann, würde ich vorschlagen, wenn deine zahlen nicht im
6 stelligen bereich kommen, rechnest du die zahl, die dividiert werden soll
einfach mal 10, teilst sie dann mit der gewünschten zahl
so... das ergebniss speicherst du in ner anderen variable, diese
variable modest du mit 10 somit hast du die letzte zahl von deinem ergebnis...
ist diese zahl >=5 muss dein richtiges ergebnis (welches du wieder durch 10 genommen hast) aufgerundet werden...
nochmal in code^^
x * 10 / y = z
z mod 10 = a
z/10 = ergebnis
wenn a >=5, dann ergebnis +1
Evilshenlong
03.09.2007, 21:21
Die einfachste Variante, die vielleicht nicht so genau ist, ist die, einfach alle Zahlen zu vergrößern, also praktisch das Komma zu verschieben.
Wenn z.B. Ursprünglich 5 durch 6 geteilt werden soll, kommt 0,8333 heraus, da der Maker aber alle Zahlen abrundet, würde das Ergebnis 0 sein.
Also nimmst du statt 5 z.B. 5000 und teilst das dann durch 6. Das Ergebnis ist 833,3333 also im Maker dann 833.
Das machst du bei allen Zahlen und schon hast du drei Stellen hinter dem Komma.
Natürlich dürfen die Zahlen nicht zu groß sein, da der Maker höchstens 7 Stellen anzeigen kann.
übelster Held
03.09.2007, 21:25
^^.. beim runden brauch man nur eine stelle nach dem komma...
deshalb soller bei meinem vorschlag auch nur mal 10 rechnen..^^
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.