Hallo Leute, ich habe eine mächtige Blockade im Kopf! Vieleicht könnt ihr die mir lösen. Mein Problem: Eine C-Funktion liefert Werte von -1e-8 bis +1e-8. Ich möchte aber nur Werte im Bereich von -1e-6 bis +1e-6 auswerten. ....unwichtig.......-1e-6.......0........+1e-6......unwichtig.... .......... wichtig........ Werte die kleiner(unwichtig) sind sollen auf Null gesetzt werden. Ich habe folgendes geschrieben: float ad_wert; if(( ad_wert < -1e-6) && ( ad_wert < 1e-6)) ad_wert = 0; . . Obiges Beispiel habe ich empierisch abgeändert,(logische Denken ist mir schon abhanden gekommen), aber nicht funktioniert. Gibt es Hilfe für mich? Ich schreibe mit Codevision für mega128. Gruß Brillitsch
if(( ad_wert < -1e-6) || ( ad_wert > 1e-6)) ad_wert = 0; Dein logisches Denken ist dir aber früh abhanden gekommen !!!
naja wenn du Werte kleiner als einen oder größer als ein anderer auf 0 setzt, dann liegen sie ja plötzlich in der Mitte deines Bereiches. Ich meine du willst sie eher auf deinen Bereich begrenzen (für mich logischer) dann würdest du mit folgendem auskommen: const double min = xxxx; const double max = xxxx; if ( wert > max ) wert = max; if ( wert < min ) wert = min; da mir Codevision nicht genau bekannt ist, müssest du das Beispiel halt entsprechend abändern.
Ich weiss ja nicht, was Du damit vorhast, aber ich kann mir vorstellen, dass es so nette Seiteneffekte gibt, wenn der Wert um die Grenzen schwankt. In den meisten Fällen ist es sicher sinnvoller, den Wert nach oben und unten zu begrenzen, statt bei Über- oder Unterschritung einen ganz anderen Wert (NULL) einzusetzen: if (ad_wert < -1e-6){ ad_wert = -1e-6; } if (ad_wert > 1e-6){ ad_wert = 1e-6; } Viele Grüße, Stefan
Hallo Michael, hallo Anton, mit mir ist es wirklich schlimm. Ich glaub ich hab meine Problemstellung vermurkst. Ich schrieb und das ist falsch: ....unwichtig.......-1e-6.......0........+1e-6......unwichtig.... .......... wichtig........ Es soll heissen: ....wichtig.........-1e-6.........0............+1e-6......wichtig.... ..unwichtig, auf Null setzen.. Brillitsch
Über Deinen Ausdruck in der if-Anweisung hat der andere Michael sich schon ausgelassen. Ich möchte Dein Augenmerk auf etwas anderes lenken: Du schriebst: >>> Eine C-Funktion liefert Werte von -1e-8 bis +1e-8. >>> Ich möchte aber nur Werte im Bereich von -1e-6 bis +1e-6 auswerten. Ich hoffe, Dir ist klar, dass gilt -1e-6 < -1e-8 < 0 < 1e-8 < 1e-6 Das heißt, wenn Deine Funktion Werte zwischen -1e-8 und +1e-8 liefert, dass dann ALLE diese Werte AUTOMATISCH zwischen -1e-6 und 1e-6 liegen. Gruß, Michael
Dann folgt halt: float ad_wert; if(( ad_wert > -1e-6) && ( ad_wert < 1e-6)) ad_wert = 0; Das was sous gesagt hat, solltest du aber wirklich nochmal überdenken.
Hallo sous, ja, du hast recht. Mich interessieren nur Werte ausserhalb von -1e-6 bis +1e-6. @Stefan Kleinwort Die Werte werden erst durch 0,0064 geteilt und dann auf ein Display ausgegeben. Liegt der Wert innerhalb der Grenzen von -1e-6 bis +1e-6 so soll das Display 0,00000 zeigen. Gruß Brillitsch
Hallo Michael, perfekt deine Lösung, vielen Dank. Dank an allen. Schönen Gruß Brillitsch
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.