Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Formatierte Ausgabe

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
12.08.2003, 01:11 Uhr
~merp36
Gast


Hallo allerseits

wie kann ich die ausgabe einer float oder double zahl nach folgender maske formatieren?

0.#####e+##

wobei das wichtigste der ZWEIstellige Exponent ist. Ich bekomme bei der ausgabe mit cout z.B. immer 3-stellige exponenten und hab noch keinen manipulator bzw. kein flag gefunden mit dem man das ändern kann


thnx@all helpers
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
12.08.2003, 07:31 Uhr
virtual
Sexiest Bit alive
(Operator)


Dafür gibt es keinen Sandardmanipulator.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.08.2003, 13:31 Uhr
~merp36
Gast


Wie geht es denn dann?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
12.08.2003, 14:28 Uhr
0xdeadbeef
Gott
(Operator)


Klar gibt es so einen. Oder gleich zwei:

C++:
#include <iostream>
#include <iomanip>

//...
std::cout << std::setiosflags(std::ios_base::scientific)
          << setprecision(5);
std::cout << 3.1415926535e9 << std::endl;


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.08.2003, 14:33 Uhr
virtual
Sexiest Bit alive
(Operator)


@Beefy
und wie Stellst du sicher, daß der Exponentz Zweistellig ist, wie im ursprungspost gefordert?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.08.2003, 14:41 Uhr
0xdeadbeef
Gott
(Operator)


Mindestens zweistellig, ja. Bei Exponenten > 99 oder < -99 ist er natürlich dreistellig. Allerdings kriegt man so keine führende Null - wenn er das auch noch haben will, muss er halt ein bisschen basteln. Dürfte aber nicht weiter schwer sein.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.08.2003, 14:57 Uhr
virtual
Sexiest Bit alive
(Operator)


Also zunächstmal mußt Du Dir klar machen, daß nicht alle Zahlen in dieses Format passen. Wenn das Format genau dem entsprechen soll, was Du obengeschrieben hast, daß werden sich nur Zahlen im Bereich 0.0 <= x < 1e105 Darstellen lassen.
Ich würde zunächst mal eine Funktion schreiben, die das leistet; die kannst Du danach ja immer noch in einen Userdefined Manipulator umwandeln. Allerdings solltest Du dir frühzeitig überlegen, was denn geschehen soll, wenn die Zahl nicht aus dem og Bereich stammt.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
12.08.2003, 14:58 Uhr
virtual
Sexiest Bit alive
(Operator)


@beefy Ersetz mal die krumme Zahl durch 3 und sage mir wie groß der Exponent ist (bei mir 0 Stellen!).
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
12.08.2003, 15:11 Uhr
~merp36
Gast


Also das Problem ist das der Exponent >immer< dreistellig ist auch für kleinere Werte, dann jeweils mit führenden Nullen.
Ist das vielleicht abhängig vom Compiler? Ich benutze den Default-Compiler von Dev-C++.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
12.08.2003, 15:28 Uhr
virtual
Sexiest Bit alive
(Operator)


Was willst Du denn nun genau. Ist es eaxkt das Format, was du oben genannt hast (0 vor dem Komma, dann 4 Nachkomma stellen und dann Exponent mit 2 Stellen), oder willst Du einfach den Exponenten weg haben?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: