Ich möchte,um mich ein wenig in C++ einlaufen,einige meiner alten Numerikübungsaufgaben,auf welche ich immer volle Punktzahl hatte,statt in matlab jetzt auch in C++ implementieren (natürlich ohne Plots!).
Als ich eben das erste Mal eine Potenz in einem Programm brauchte und ich "pow" benutzte stelle ich fest das mir das Programm zwei verschiedene Ergebisse ausgibt.
Ich schrieb ein neues kleineres Programm,welches nur noch die Potenz a^b berechnet,um sicher zu gehene,dass dies keine Komplexitäts bedingten Gründe hat,aber auch hier tritt der Fehler auf.

Gebe ich ein: int x = pow (a,b)

erhalte für 5^3 den Wert 124 (!).

Erst wenn ich eingebe: double x = pow(a,b) erhalte ich hier das korrekte Ergebniss 125.

Auch wenn ich mir seit 30 Minuten alles was ich zum Unterschied von float und double finden konnte durchlese,erklärt dies sicher nicht den Effekt.

Seltsamerweise tritt der Fehler nicht bei anderen 3er und 5er Potenzen auf.Was könnte hier falsch laufen bei der Verwendung ganzer Zahlen?