AOQML - Gleitkommazahlen und Integer

AOQML - Gleitkommazahlen und Integer

Beitragvon Ogli » Mo 05 Okt, 2009 06:14

Hallo,
ich habe ein Problem.
Im Wiki habe ich gelesen, dass die Höhe eines Helden ein Attribut ist, dass die Körpergröße in Metern angibt (also eine gebrochene Zahl):

Attribute
Allgemein
* 'name': der komplette Name des Helden
* 'nick': der falsche Name des Helden
* 'height': seine Größe in Schritt
* 'weight': sein Gewicht in Pfund
[...]


Nun will ich aber eine Zufallszahl haben, die gegen die Körpergröße des Helden getestet wird, also sowas:
Code: Alles auswählen
<set name="wassertiefe" val="0..1000"> <!-- wassertiefe in zentimetern -->
<set name="tiefezumstehen" val="${wassertiefe}">
<set name="tiefezumstehen" dec="20">
<set name="koerpergroesse" val="${height}">
<!-- hier will ich nun prüfen, ob der held schwimmen muss oder noch stehen kann! -->


Das Problem ist hierbei:
Ich habe zwei unterschiedliche Zahlentypen - eine Zufallszahl die ein Integer ist ("wassertiefe") und eine Gleitkommazahl ("koerpergroesse")
Um diesen Konflikt zu lösen, müsste ich entweder dies tun:

"koerpergroesse in Zentimeter" = (Integer) "koerpergroesse * 100"

oder das hier:

name="wassertiefe" val="0.0..10.0"> <!-- wassertiefe in Metern -->

Da ich nicht testen kann, was ich schreibe habe ich nun ein Dilemma: Ich weiß absolut nicht, was ich machen soll - Kann mir hier einer von euch erfahrenen Leuten weiterhelfen??? :(
Ogli
 

Re: AOQML - Gleitkommazahlen und Integer

Beitragvon olcapone » Mo 05 Okt, 2009 19:30

Bei PHP ist das alles lax. Der macht eigenständige Typkonvertierung.

Beispiel:

Grösse = 186.8cm = 1.868m
Wassertiefe = 200cm = 2m

Wenn du jetzt einen Vergleich der beiden Werte machst, geschieht in etwa folgendes:

Entweder du hast Grösse = 186cm oder du hast Wassertiefe = 200.0cm. Je nachdem wie der Interpreter die Daten entgegennimmt.

/edit:

Moment, habe wohl was falsch verstanden. Versuch mal das mit <set name="wassertiefe" val="1.0..10.0" />. Das sollte klappen.
Discussion groups are like uranium: a little pile gives off a nice, warm glow, but if the pile gets bigger, it hits critical mass and starts a deadly meltdown.

Spoiler:
Ich bin ein Stern am Firmament,
Der die Welt betrachtet, die Welt verachtet,
Und in der eignen Glut verbrennt.

Ich bin das Meer, das nächtens stürmt,
Das klagende Meer, das opferschwer
zu alten Sünden neue türmt.

Ich bin von Eurer Welt verbannt
Vom Stolz erzogen, vom Stolz belogen,
Ich bin ein König ohne Land.

Ich bin die stumme Leidenschaft,
Im Haus ohne Herd, im Krieg ohne Schwert,
Und krank an meiner eignen Kraft.
Hermann Hesse
Benutzeravatar
olcapone
Major
Major
 
Beiträge: 2574
Registriert: Di 10 Jul, 2007 19:47
Wohnort: Biel / Schweiz
Heldenname: Die Nachfahren Hjalls
Mitglied bei: - Sjólfur Drakarskapar Isbrotsos -

Re: AOQML - Gleitkommazahlen und Integer

Beitragvon Gaddezwerch » Mo 06 Sep, 2010 18:09

Der Vollständigkeit halber: Jan hatte irgendwann eval eingebaut, damit sollten alle Rechnungen machbar sein.
:meidetdasorkland: <-- Das meine ich ernst! Wirklich!
Gaddezwerch
Programmierer
Programmierer
 
Beiträge: 4848
Registriert: Fr 18 Mai, 2007 00:04
Heldenname: Alos Traken


Zurück zu Antamar®-Archiv



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste