Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > > Hallo CC2 Fan Gemeinde! > > Ich habe da eine kurze grundlegende Frage. > > > > Ich muss eine Variable x berechnen, die Formel lautet > > > > x = (y *5.55ms *1.41) /10 wobei y einen Wet von 0-8000 annehmen kann. > > > > Für die Variable x verwende ich eine long Variable. > > > > Wie muss nun meine Rechnung aussehen im Programm aussehen? Wie ist dass mit den > > Kommastellen, rechnet der Controller die mit? Dann wäre a richtig. Wenn ich erst in ganze Zahlen > > umwandeln muss müsste ich ja dementsprechend am Ende nochmal dividieren wie im Beispiel b: > > also 5.55ms * 100000 = 555 > > und 1.41 * 100 = 141 > > > > > > a) x = (y *5.55ms *1.41)/10 > > > > b) X = (y 555s *141) /100000000 > > > > Leider habe ich den Controller nicht zur Hand um es ausprobieren zu können... > > > > MfG Markus > > Hallo, > > eine long-Variable kann keine Nachkommastellen. > Wie du am Besten vorgehst, hängt in erster Linie von der Genauigkeit ab, die du benötigst. > Meiner Meinung nach wäre es am einfachsten, wenn du deine Werte in Mikrosekunden berechnest. > In deinem Falle würde sich dann ergeben: > > ( 5,55 * 1,41 / 10 * 1000) = 782,55 ergibt gerundet 783 > > also > > x = y * 783 x ist dein Wert in Mikrosekunden. > > Dieser Wert lässt sich dann jederzeit wieder auf ms (oder Sekunden) reduzieren. > > Die Rechnung: > X = (y 555s *141) /100000000 > würde zum Desaster führen, da x (wie schon gesagt) keine Nachkommastellen kennt. > Du würdest also nur Werte zwischen 0 und 6 erhalten. > Gruß > > Udo