Große Zahlen
-
Hi !
Den Integeranteil kannst du dir mit der Funktion modf anzeigen lassen.
-
Wenn ich modf(zahl) benutze bekomme ich nen Fehler, dem ich entnehme, dass ein zweiter Parameter fehlt.
Was muss die zweite Angabe sein in modf? Ein kurzes Beispiel wäre nett.
-
double modf( double x, int *int_ptr );wo gehst du jetzt noch überall mit modf hausieren? Völliger overkill!
#include <iostream> #include <iomanip> using namespace std; int main( ) { double value = 1.7633e+006; cout << fixed << setprecision( 0 ) << value << endl; }greetz, Swordfish
-
Danke, teste ich gleich mal
edit: Funktioniert

Kann man jetzt noch irgendwie Tausender-Trennzeichen machen (außer mit printf, dann müsste ich alles von cout auf printf umschreiben..)
-
std::cout.imbue( std::locale( "german" ) );
-
Dann kriege ich nen Runtime Error (ohne Bluescreen) und Windows Vista beendet das Programm...
-
Das ist tragisch. Wie sieht denn dein Code aus?
-
Einfach so: (als test)
#include <iostream> using namespace std; int main(){ std::cout.imbue( std::locale( "german" ) ); //wegen dem using namespace hab ich auch schon versucht die beiden std:: wegzulassen. geht trotzdem nicht double zahl 10000000; cout << zahl; }
-
Das kompiliert? Da fehlt nämlich mindestens ein "=" zwischen zahl und 10000000.
-
David_pb schrieb:
Das kompiliert? Da fehlt nämlich mindestens ein "=" zwischen zahl und 10000000.
Das war natürlich drin. Hab den Source nicht kopiert.
-
Ich zitiere die Meldung aus der Konsole:
This application has requested the Runtime to terminate it in an unusual way. Please contact the apllication's support team for more information.
Und hier nun der zitierte Source:
#include <iostream> using namespace std; int main(){ std::cout.imbue( std::locale( "german" ) ); //ohne die beiden std:: haargenau dieselbe fehlermeldung double zahl = 10000000; cout << zahl; }Direkt nach der Fehlermeldung in der Konsole kommt Vista's typische Meldung: 'Testprojekt.exe funktioniert nicht mehr'
-
#include <locale> #include <iomanip> #include <iostream> int main() { std::cout.imbue( std::locale( "german" ) ); double zahl = 100000000; std::cout << std::fixed << std::setprecision( 2 ) << zahl; std::cin.get(); }Dieser Code läuft bei mir ohne Probleme.
-
Wenn ich den so kompiliere und ausführe (1:1 copy&paste), krieg ich auch die oben genannte Fehlermeldung.
-
Sehr mysteriös... Sollte egtl keine Probleme machen der Code.
-
Ich benutze Dev-C++ zum Kompilieren. Hat das bekannte Macken oder so?
-
Die Bloodshed Dev-C++ IDE hat einige Macken und wird nicht mehr weiterentwickelt. Der Compiler darunter sollte aber ein gcc-Klon sein, also

greetz, Swordfish
PS: Vielleicht magst du mal den Debugger anwerfen?