Mein Programm druckt RIESIGE Zahlen aus - wie 100363443, bis zu einer Billion - und es ist schwer, sie zu lesen, daher möchte ich jede Zahl in leicht lesbarer Form drucken.
jetzt benutze ich
%Vor%Format
Ich würde eine resultierende Zahl mit printf schätzen. Der größte Teil meines Codes ist C ++. Ich möchte jedoch nicht std :: cout einführen, da ich bereits printf
habeDanke
Verwenden Sie das nicht standardmäßige apostrophe
-Flag in der PrintF-Formatzeichenfolge, wenn Sie diese Option verfügbar haben und es Ihnen nichts ausmacht, ein wenig Portabilität zu verlieren.
Laut meiner Dokumentation ist das Flag '
für POSIX
Wenn Sie auf Unix, Linux, Mac, ... sind, sollten Sie kein Problem haben Wenn Sie unter Windows, DOS, iSeries, Android, ... sind, sind alle Wetten ausgeschaltet (aber Sie können vielleicht eine POSIX-Schicht in Ihrem System installieren).
%Vor%Auf meinem System erzeugt dieses Programm:
%Vor%Sie könnten humanize_number () verwenden, das Suffixe wie k, m usw. verwendet, um die Ziffern niedriger Ordnung wegzulassen. Dies ist keine Standardroutine, daher sollten Sie die Quelle, mit der ich verlinkt bin, d. (2-Klausel-BSD-Lizenz, erlaubt jede Art von Verwendung.)
Humanize_number-Quellcode von NetBSD .
%Vor%Dies funktioniert durch Anhängen von Suffixen wie folgt:
%Vor%Einfacher Weg könnte sein, vor der Ausgabe in ein Double umzuwandeln und% e zu verwenden, das sie in exponentieller wissenschaftlicher Notation ausgibt. Versuchen Sie Folgendes:
%Vor%Beachten Sie, dass die Zahl ein Float
istEDIT: oder wenn Sie nicht wissenschaftlich mögen, fand ich das im Internet:
%Vor%BEARBEITEN SIE 2: Wie von Jerry erwähnt, brauchen Sie nicht die Komma-Klasse wie oben, das scheint ausreichend (obwohl es vermutlich Locales gibt, die keine großen Zahlen überhaupt formatieren?):
%Vor% Merken Sie sich die Lokalisierung (besonders wenn Sie eine Bibliothek schreiben).
In Europa (außer Großbritannien) wären es 1.000.000 statt 1.000.000
Hier ist ein Beispiel, das ich gerade geschrieben habe, ohne locale zu verwenden. Funktioniert nur für Positives. (Viel Hilfe von "DiscoVlad")
%Vor%Tags und Links c c++ largenumber