große zahlen darstellen
-
kann mir jemand sagen wie ich z.b. die zahl 20 millionen mit allen nullen darstellen kann, ohne das die ausgabe das automatisch als 20e6 darstellt?
-
Probier mal mit dem fixed-Manipulator:
double d = 20000000.00; std::cout << std::fixed << d << std::endl;
-
danke für deine schnelle hilfe, das funktioniert schonmal.
kannst du mir vielleicht auch noch sagen ob es eine Möglichkeit gibt die nullen, der übersichlichkeit halber, zu trennen??
Also anstatt 20000000.00 z.B. so 20 000 000.00
-
dafür wäre es doch eine schöne aufgabe um mal eine funktion dafür zu schreiben:)
-
wahrscheinlich schon, muss nur dazu sagen, dass ich blutiger anfänger bin. hab zu weihnachten ein buch bekommen und arbeite mich gerade rein, von daher hab ich noch nicht wirklich viel ahnung.
versuche ein programm zuschreiben, bei dem man mit einem startwert von 20 000 000 anfängt und man dann die ein - und ausgaben eingeben kann und das für 18 verschiedene personen. is just for fun, hab das mit switch case programmiert, aber noch einige fehler drin.
z.b. weiß ich nich genau wie ich das programmieren kann, wenn ich mehrere zahlen als einnahme hab, dann soll der alle addieren. hab das über ne while-schleife versucht, hat aber nicht geklappt. wollte sollange einhamen eintragen können bis ich sage einnahmen=0. bevor das programm die anderen zahlen addiert hat, sind die einnahmen aber auf 0 gesetzt und damit wird nix addiert...
aber ich arbeite dran
-
winni_07 schrieb:
kannst du mir vielleicht auch noch sagen ob es eine Möglichkeit gibt die nullen, der übersichlichkeit halber, zu trennen??
Also anstatt 20000000.00 z.B. so 20 000 000.00
Die Werkzeuge sind die Facette std::numpunct nebst den Methoden thousands_sep() (definiert das Zeichen) und grouping() (definiert die Unterteilung).
Gruß
Werner
-
Werner Salomon schrieb:
Die Werkzeuge sind die Facette std::numpunct nebst den Methoden thousands_sep() (definiert das Zeichen) und grouping() (definiert die Unterteilung).
.. und so geht's:
#include <iostream> #include <locale> // std::numpunct #include <iomanip> // setw, setprecision template< typename E > class SpecialGrouping : public std::numpunct< E > { protected: virtual std::string do_grouping() const { return std::string( "\003" ); } virtual E do_thousands_sep() const { return E(' '); } }; int main() { using namespace std; cout.imbue( locale( cout.getloc(), new SpecialGrouping< char > ) ); cout << fixed << setprecision(2); for( double d = 1.23456789; d < 10E+12; d *= 100 ) cout << setw(20) << d << endl; return 0; }
Der Output:
1.23 123.46 12 345.68 1 234 567.89 123 456 789.00 12 345 678 900.00 1 234 567 890 000.00
Gruß
Werner
-
Super, vielen Dank für eure Hilfe.