c++ frage zur while funktioniert und dem ergebnis
-
mein code :
#include <iostream> #include <cmath> #include <cstdlib> using namespace std; int main() { long potenz = 0; int n = 2; cout << endl; while(n <= 20) { potenz = pow(4.0, n); cout << "4 hoch " << n << " ist = " << potenz << endl; ++n; } system("PAUSE"); return (0); }nach hoch 14 kommen bei mir negative ergebnisse. ich kann mir nicht denken , warum das so sein soll.
kann mir jemand 'n tip geben oder gleich sagen,was ich falsch gemacht habe ?
-
ich bin der gleiche nur mit anderem benutzernamen.
wenn ich float bei potenzen benutze,dann werden mir ab 10 nur noch hex zahlen angezeigt. bei int , long , double kommt das gleiche raus
-
Siehe: http://de.wikipedia.org/wiki/Arithmetischer_Überlauf
Da hilft nur größeren Zahlentyp nehmen.
-
Probier mal long long
-
vhjghjghjghjg schrieb:
wenn ich float bei potenzen benutze,dann werden mir ab 10 nur noch hex zahlen angezeigt.
Bloß weil da ein e drin ist, ist das keine hexadezimale Zahl.
http://de.wikipedia.org/wiki/Wissenschaftliche_Notation
http://www.cplusplus.com/reference/ios/scientific/
http://www.cplusplus.com/reference/ios/fixed/