c++ Float Vorkomma- und Nachkommawert ermitteln

2 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Speichere die Zahl in string (oder charachter array). Dann mache eine Schleife, schreibe die character aus, und suche nach Komma. Wenn du Komma gefunden hast, dann schreibe eine neue Zeile, und dann schreibe die danach stehende character aus.

Oder benutze strtok:

http://www.cplusplus.com/reference/cstring/strtok/


kordely  20.02.2015, 20:35

Danke für den Stern!

0

Kann es leider im Moment nicht prüfen, aber versuch es mal so:

Zahl als Float eingeben - float als neue Integervariable speichern -> müsste eigentlich die Kommastellen einfach abschneiden- Integervariable = Vorkommawert Float-Integervariable = Nachkommawert


Youkakun  18.02.2015, 01:26

Noch besser als die Konvertierung in einen Integer wäre der Nutzen der mathematischen Funktion floor, da sich diese in einen günstigen Maschinenbefehl zur direkten Rundung einer Fließkommazahl auflöst, was auch positiv zur folglichen Subtrahierung mit gleichen Datentypen beiträgt.

Um das ganze allerdings zu verkürzen, gibt es bereits die Funktion modf: http://en.cppreference.com/w/cpp/numeric/math/modf

2
ElonMusk  17.02.2015, 14:08

hab quasi den gleichen code, kann das aber nicht replizieren... komisch oO

0
peldaftw 
Beitragsersteller
 17.02.2015, 14:19
@ElonMusk

Spinnt mein Compiler einfach nur oder woran kann das liegen dass da was anderes rauskommt ? :/

0
TheXen0  17.02.2015, 14:54
@peldaftw

Was meinst du mit 'anderes' ? nur das 01 am ende ?

0
Youkakun  18.02.2015, 01:07
@peldaftw

Das wird ein Präzisionsproblem sein, da Fließkommazahlen digital nur annäherungsweise gespeichert werden. Mit float ist dies sogar noch weit schlimmer als mit double.

Für mehr, lese folgendes: http://floating-point-gui.de

1