E = mc² ??
-
Warte mal...
Ich hab nie gesagt das ich überhaupt mit Fließkommazahlen rechne...
Bei der Formel kommen nun mal Ganzzahlen raus wenn man z.B. nur einfache Ganzzahlen eintippt.E = 10*300000*300000 = 900000000000
Also für mich ist das eine Ganzzahl oder denke ich jetzt falsch?
Ich versteh denn Sinn jetzt nicht!?!Ausserdem habe ich schon vorher so ähnlich gerechnet:
long double E = 0; long double m = 0; const double c = 300000; scanf("%d", &m); E = m*c*c; printf("%d Joule hat dieses Objekt!\n\n", E);
mfg
Cl0v3r
-
hm, kannst es vielleicht mal mit "long long" probieren
-
...
Meinst du das ernst?
-
Cl0v3r schrieb:
Warte mal...
Ich hab nie gesagt das ich überhaupt mit Fließkommazahlen rechne...
Bei der Formel kommen nun mal Ganzzahlen raus wenn man z.B. nur einfache Ganzzahlen eintippt.
[..]
Also für mich ist das eine Ganzzahl oder denke ich jetzt falsch?
Ich versteh denn Sinn jetzt nicht!?!Welchen Sinn ergibt dann deine Antwort auf SG1' Artikel? Naja, egal. Du kannst ziemlich problemlos alles mit double-Zahlen machen; Perl zB arbeitet intern immer mit Gleitkommazahlen und ist trotzdem benutzbar.
long double E = 0; long double m = 0; const double c = 300000; scanf("%d", &m);
long doubles liest man mit scanf("%Lg", &m), sonst kommt Unfug raus.
printf("%d Joule hat dieses Objekt!\n\n", E);
Hier muß es auch "%Lg" heißen.
-
Aber nicht Rik=0 ( ik steht wie ² versetzt nur nicht oben sondern unten)
PS: bin ein einstein fan ( und verstehe das meiste was er sagte)
-
Cl0v3r schrieb:
...
Meinst du das ernst?
ja.
-
Daniel E. schrieb:
Welchen Sinn ergibt dann deine Antwort auf SG1' Artikel?
Gute Frage *lach* man man man...jetzt werden wir schon shizofren
(Ich hab dir doch gesagt das das richtig ist! Jaaaaa is ja guuut...)Aber dickes THX hat gefunzt!
@++++++++++++
Auf jeden Fall! Er ist die Pop Ikone der PhysikEinstein schrieb:
Holz hacken ist deshalb so beliebt, weil man bei dieser Tätigkeit den Erfolg sofort sieht.
mfg
Cl0v3rEDIT: Sorry aber wie dir vielleicht aufgefallen ist ist diese Anweisung unzulässig (long long). Bei meinem Compiler. Ich weiss nicht ob das mit anderen geht aber mit meinem Compiler nicht.
-
hm, also irgendwie ging das. wenn du windows.h inkludierst kannst du auch LONGLONG nehmen, aber da dein problem eh gelöst ist, is auch egal.
-
Aso...
Naja die hab ich ja nich included.
Das wusste ich nicht.
Trotzdem danke vielleicht hilft mir das später nochmal wenn ich sowas brauche.mfg
Cl0v3r
-
long long ist seit C99 im Standard. Einige Compiler konnten ihn schon früher (z.B. gcc), aber manche offensichtlich immernoch nicht
-
Hi,
Hab das mal ausgeprobst die windows.h zu includen und dann gucken:
Stimmt auch wenn ich die Lib windows.h include kann ich keine long long deklarieren bzw initialisieren.
Schade...
Hab gedacht Microsoft wäre auf dem neusten Stand... *LACH*
Naja, lächerlichWäre zu schön gewesen...
mfg
Cl0v3r
-
auch die konstanten müssen double sein! also
double E = 10.0*300000.0*300000.0;
sonst rechnet der compiler den ausdruck 10*300000*300000 intern erst mal mit integer aus und da gibst dann den überlauf. und da hilfts dann auch nichts mehr, daß der compiler bei der multiplikation des übergelaufenen zwischenergebnisses mit einer double-variablen brav nach double konvertiert.
also immer schön überall .0 hinten dranhängen
-
MS-VC++ beherrscht durchaus 64-bit-integers. die heißen da allerdings __int64.