Forum: Compiler & IDEs Problem mit pow


von Florian (Gast)


Lesenswert?

Ich muß ein mordsmäßiges Brett vor'm Kopf haben:

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

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

von Karl heinz B. (kbucheg)


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 );

von Florian (Gast)


Lesenswert?

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

von Karl heinz B. (kbucheg)


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.

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
Noch kein Account? Hier anmelden.