myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   C++: float Ergebniss umwandeln... (https://mygully.com/showthread.php?t=2554983)

filefish 21.01.12 21:28

C++: float Ergebniss umwandeln...
 
Hallo Leute,

ich habe gerade an meinem Programm weitergearbeitet, welches ich in C++ geschrieben habe.
Bei meinen Rechnungen kommen überall nur float-Ergebnisse heraus, also Werte wie der folgende:

2.88488e-040

Welchen Code kann ich schreiben, dass ich aus einem float-Ergebniss eine Zahl angezeigt bekomme, welche:

-3 Nachkommastellen hat
-auf die dritte NK-Stelle gerundet ist ?

Ich bin verzweifelt, weil ich schon die ganze Zeit versuche das mit ein paar Beispielen aus dem Interet zu lösen, bin aber nie richtig weitergekommen. Es gibt nur Beispiele (welche auch funktionieren), zu "Wie mache ich aus einer Float ein Int-Ergebniss"...

Kann mir jemand von euch weiterhelfen?

urga 21.01.12 22:19

also e-040 lässt sich nicht per 3 nachkommastellen darstellen. da käme 0 bei raus.

generell schau dir [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

.precision an

Quabla 22.01.12 11:08

was du da bekommst schimpft sich wissenschaftliche notation

2.88488e-040 = 2,88488 *10^(-40)

jon.west 03.02.12 17:43

Code:

printf("Zahl: %2.3f", floatwert)
Das sollte dir eine Zahl mit 2 Stellen vor dem Komma und 3 Stellen nach dem Komma anzeigen :)

Die Stellen vor dem Komma, werden bei zum Beispiel 1,723 in obigem Beispiel mit einer 0 aufgefüllt, also: 01,723.

Runden müsste der Compiler hier auch von alleine ... weiß das nicht mehr so genau, C++ ist lange her :D

PS: Das printf("") ist auch nicht wirklich schön anzusehen in C++, aber weiß nicht mehr wie das c out funzt :confused:

germgerm 04.02.12 09:49

Zitat:

Zitat von jon.west (Beitrag 23246769)
PS: Das printf("") ist auch nicht wirklich schön anzusehen in C++, aber weiß nicht mehr wie das c out funzt :confused:

PHP-Code:

cout << setprecision (3) << floatwert << endl



Alle Zeitangaben in WEZ +1. Es ist jetzt 09:11 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.