mikrocontroller.net

Forum: Compiler & IDEs Problem mit pow


Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich muß ein mordsmäßiges Brett vor'm Kopf haben:

Ich will pow nutzen.
Nur das
int x=2;
pow (10,x);
immer 99 zurück gibt.
pow (10,2);

funktioniert, hilft mir aber nicht weiter. Auch wenn ich double als 
Datentyp nehme: selbes Ergebnis.
???

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich trau mich fast zu wetten, dass dein Ergebnis
nicht 99 sondern 99.99999999 lautet. D.h. sehr nahe an
100 aber eben nicht exakt 100.

Du wirst wahrscheinlich sowas haben:

  int i = pow( ... );

pow liefert ein double Ergebnis. Wann immer man einen
double auf einen int zuweist, ist es ratsam eine
Rundungskorrektur anzubringen:

  int i = (int)( pow( ... ) + 0.5 );

Autor: Florian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, das hilft. Ist aber mal wieder unbefriedigend. Aber so ist das ja 
öfter bei floats :-(

Autor: Karl heinz Buchegger (kbucheg)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na ja.
pow( x, 2 )
rechnet ja auch keiner.
pow ist eigentlich nur dann interessant, wenn der Exponent
keine ganze Zahl oder größer als, sagen wir mal 5 oder 6
ist. Alles andere macht man mit Multiplikation.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.