Toon posts:

[c++] setiosflags (ios ::scientific) vraagje

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi, ik zit met een klein vraagje ik moet getallen zoals dit weer gaan geven.
1 wordt 1.0000000000000e+0001

Dus dat dacht ik dat gaat wel lukken met setprecision en setiosflags,zoals dit:
cout << setprecision (14) << setiosflags (ios ::scientific);

Aleen kom ik hier bij nog 1 probleempje bij tegen, inplaats van e+0001 wordt er e+01 geschreven.
Dus mijn vraag is hoe kan ik er voor zorgen dat er e+0001 wordt geschreven ?


1 moet 1.0000000000000e+0001 worden,maar wordt 1.0000000000000e+01

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Volgens mij kun je dat niet aanpassen.

  • barber
  • Registratie: Oktober 2001
  • Niet online
Op zaterdag 09 maart 2002 11:37 schreef RutgerB het volgende:
Hoi, ik zit met een klein vraagje ik moet getallen zoals dit weer gaan geven.
1 wordt 1.0000000000000e+0001

Aleen kom ik hier bij nog 1 probleempje bij tegen, inplaats van e+0001 wordt er e+01 geschreven.
Dus mijn vraag is hoe kan ik er voor zorgen dat er e+0001 wordt geschreven ?
Volgens mij kan je dit niet aanpassen, maar bij mij in Visual C++ 6 wordt 10 getoond als: 1.00000000000000e+001

Dus met drie getallen achter de +
Meer getallen zijn ook niet nodig omdat de max en min waarde van double dit zijn:
grootste waarde: 1.7976931348623158e+308
kleinste positieve waarde : 2.2250738585072014e-308

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 11-09 18:38
Om een custom numeriek formaat re gebruiken moet je
een num_put class maken met std::num_put als base.
Waarschijnlijk wil je dan
code:
1
virtual iter_type do_put(iter_type, ios_base&, char_type fill, long double v) const;

implementeren.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein