Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Mathematische Frage Kategorie: Programmierung (von Markus - 6.11.2005 19:07)
Als Antwort auf Re: Mathematische Frage von Udo - 6.11.2005 18:34
Ich nutze:
C-Control II Unit, CC2-Application-Board, OSOPT V3.0
> > 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
>

Hallo Udo!
Erstmal Danke für deine Antwort!
also dass Ergebnis würde immer gerundet, wie sieht es denn aus bei der Berechnung.
Beispiel:  3.33 * 4.55

rechnet der Controller dann
a) 3.33 * 4.44 = 14.7852 --> 15 oder
b) 3 * 4 = 12

MfG Markus


    Antwort schreiben


Antworten:

Re: Mathematische Frage (von krassos - 7.11.2005 4:20)