Dateityp für grosse Zahlen
-
Guten Abend,
ich bin immernoch ein ziemlicher C-Neuling und stoße mal wieder bei einem wahrscheinlich lachhaften "Problem" an meine Grenzen:
Also kuzer Stand der Dinge: ich möchte (bzw. muss) ein Programm schreiben, dass die Fallbewegung eines Objektes in z.B. die Sonne simuliert. Die zu verarbeitenden Formeln pro Zeitintervall habe ich auch schon:
a)Fallbeschleunigung=-GravitationskonstanteSonnenmasse/(Abstand^2)
b)Fallgeschwindigkeit=Geschwindigkeit+FallbeschleunigungZeitintervall
c)Abstand=Abstand+Fallgeschwindigkeit*Zeitintervall (da die Beschleunigung negativ ist, wird der Abstand auch kleiner)
d)Zeitpunkt=Zeitpunkt+Zeitintervall
Das kann man jetzt für beliebing viele Zeitintervalle wiederholen z.B. bis das Objekt in die Sonne gefallen ist.Mein Problem ist jetzt, dass ich nicht weis was für Datentypen ich nehmen soll.
Bei einer solchen Simulation können ja sowohl sehr hohe, wie auch sehr kleine Werte eingegeben werden. Aber meine ausprobierten Typen haben entweder keine Nachkommastellen oder nichts vor dem Komma! (Denkt bitte nicht,dass ich einfach faul bin und euch meinen Kram machen lassen will: Ich habe mich auch schon über die Detail-aufteilung in Exponent und Mantisse informiert) Schon die Gravitationskonstante hat ja den krummen Wert 6.672*10^-11 und auch die Masse kann von 0.1 Gramm bis X Mio. Tonnen variieren.
Bitte nur ein paar Tips und wenn noch etwas unklar ist einfach fragen. Ich antworte so schnell es geht auf Nachfragen.
Schon jetzt danke an die hoffentlich schnellen Antworten (morgen startet das Schulprojekt), Balu
-
Achso:
Mir sind auch Dateitypen nach C99-Standard recht. Aber auch long long hat nichts nach dem Komma und long double nichts davor.
-
long double
hat "auch etwas vor dem Komma". Aber wenn du wirklich große/präzise Zahlen willst, dann schau dir GMP an.
-
Noch eine Frage zum ähnlichen Thema.
Ich hoffe es Antwortet noch jemand!Wie kann ich mit scanf z.B. eine double Zahl einlesen?
Dafür gibt es keinen Typenbezeichner, oder?
-
Balu Jr. schrieb:
Dafür gibt es keinen Typenbezeichner, oder?
Doch.
scanf ("%lf", &zahl);