-
30.10.2012, 16:10 #1
- Registriert seit
- 18.12.2011
- Beiträge
- 159
- Blog Entries
- 2
Thanked 182 Times in 98 PostsPotenzwert ermitteln, PC rechnet falsch
Hallo,
Hat einer eine plausible Erklärung, warum folgendes Ausgabe: 24 ergibt?
Code:#include <stdio.h> #include <stdlib.h> #include <math.h> void Calc(int n) { int moegliche_woerter = pow(n, 2); printf("%d", moegliche_woerter); } int main() { Calc(5); return 1; }
-
30.10.2012, 19:23 #2
- Registriert seit
- 15.11.2011
- Beiträge
- 6.308
- Blog Entries
- 5
Thanked 9.157 Times in 3.028 PostsAW: Potenzwert ermitteln, PC rechnet falsch
Habs grad mit MG800 getestet.
Er hat unter Windows compiliert und bekommt auch 24 raus.
Ich bekomme unter Linux das korrekte Ergebnis:
Code:dani@laptop:~$ g++ test.cpp -o test dani@laptop:~$ ./test 25
Dürfte zwar eigentlich nichts ausmachen, aber sonst wüsste ich auch nicht woran es codeseitig liegen kann außer einem Fehler in der math.h unter Windows.
Und was lernen wir draus? Linux ftw.
-
30.10.2012, 19:33 #3
AW: Potenzwert ermitteln, PC rechnet falsch
Ich habs jetzt in C++ auch. Es ist tatsächlich so das es für ein basis die keine Fließkomma zahl ist keine Passende Überladung gibt. Aber warum des zu einem Rechenfehler führ ist mir unklar. Es ist auch nur bei 5 so alle andere Zahlen funktionieren ohne probleme.
Code:#include <stdio.h> #include <stdlib.h> #include <math.h> #include <iostream> using namespace std; void Calc(int n) { float moegliche_woerter = pow((float)n, 2.0); cout<<moegliche_woerter<<endl; } int main() { Calc(5); system("PAUSE"); return 1; }
-
30.10.2012, 20:14 #4
- Registriert seit
- 19.11.2011
- Beiträge
- 496
Thanked 412 Times in 268 PostsAW: Potenzwert ermitteln, PC rechnet falsch
Code:#include <stdio.h> #include <stdlib.h> #include <math.h> int main(int argc, char **argv) { printf("Moegliche Woerter: %f", pow(5, 2)); getchar(); return EXIT_SUCCESS; }
gcc -Wall main.c
kompiliert.
Ausgabe:
25.000000
Edit:
Habe deinen Quelltext 1 zu 1 übernommen. Ausgabe ist 25.Geändert von Mr. White (30.10.2012 um 20:38 Uhr)
-
30.10.2012, 22:07 #5
AW: Potenzwert ermitteln, PC rechnet falsch
-
31.10.2012, 10:08 #6
- Registriert seit
- 19.11.2011
- Beiträge
- 496
Thanked 412 Times in 268 PostsAW: Potenzwert ermitteln, PC rechnet falsch
Ich weiß, wieso mein Listing korrekt ist.
Aber Raumis funktioniert auch. Er speichert das Ergebnis als int. Hier wird implizit gecastet. Also kann er das auch mit %d als Formatzeichen ausgeben lassen.
Für mich sind die 24 nicht reproduzierbar.
-
31.10.2012, 12:21 #7
- Registriert seit
- 18.12.2011
- Beiträge
- 159
- Blog Entries
- 2
Thanked 182 Times in 98 PostsAW: Potenzwert ermitteln, PC rechnet falsch
Ich habe bereits eine Lösung gefunden, meine Annahme warum da 24 rauskommt ist folgende.
pow() gibt bei mir 25.000 aus, wenn man diese zu einer int konvertiert, macht er eine 24 daraus. Um entgegenzuwirken habe ich ein ceil(pow()); gemacht.
Verwendet habe ich auch den GNU Compiler in Code:Blocks.
Ähnliche Themen
-
Per Javascript Wert ermitteln?
Von One Way im Forum WebentwicklungAntworten: 1Letzter Beitrag: 14.02.2014, 15:16 -
Uhrzeit von U-Hacks falsch?
Von ZarneXxX im Forum FeedbackAntworten: 1Letzter Beitrag: 30.05.2013, 19:22 -
Navigation verlinkt falsch
Von Devon im Forum WebentwicklungAntworten: 2Letzter Beitrag: 10.06.2012, 17:28 -
knuddels Falsch Überwiesen
Von x failstar im Forum Fragen & ProblemeAntworten: 5Letzter Beitrag: 24.05.2012, 17:10 -
Falsch Knuddels per Tan überwiesen
Von Failstar im Forum Knuddels AllgemeinAntworten: 18Letzter Beitrag: 09.12.2011, 18:34
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.