Große Zahl formatiert ausgeben
-
Hi!
Ich habe eine relativ hohe Zahl in einer long double gespeichert (schätze ca. 150-stellige Zahl).
Nun will ich diese ausgeben, ohne dieses e+, sodass jede Zahl klar ersichtlich ist.
cout.precision(X)bringt mir nichts, da werden nach der standardzahl statt dem e+ nullen aufgefüllt, wo eigentlich keine sein sollten.
Danke.
-
Wenn ich mich recht erinnere und du unter Visual Studio arbeitest, so ist long double gleich double. Und ein double kann nur 15 Digits darstellen. Wenn du also hohe Zahlen hast, dann werden nur die ersten 15 Digits korrekt dargestellt und der Rest wird abgeschnitten.
Bei anderen Compilern ist long double etwas genauer, aber auch dort werden die Zahlen irgendwann abgeschnitten und durch Nullen ersetzt.Grüssli
-
das kann nicht gehen, da werden immer nullen sein, weil long doulbe nicht genügend bit hat um eine 150 stellige Zahl vollständig zu speichern. Ist ja auch fliesskomma.
-
Dravere schrieb:
Wenn ich mich recht erinnere und du unter Visual Studio arbeitest, so ist long double gleich double
Grüsslinein long double sit etwas grösser
4.9 * 10 hoch 308
1.7 * 10 hoch paartausendnochwas
-
Hmm, dann habe ich ein Problem...ich brauche nämlich jede einzelne Ziffer der Zahl...gibt es eine Möglichkeit von einer großen Zahl (die ich ja habe) eine bestimmte Ziffer zu bestimmen?
-
gabs erst schon mal nen thread zu großen zahlen, einfach mal die forensuche verwenden
-
Skym0sh0 schrieb:
1.7 * 10 hoch paartausendnochwas
wieviel ist das? pimaldaumen?

-
42
-
Skym0sh0 schrieb:
Dravere schrieb:
Wenn ich mich recht erinnere und du unter Visual Studio arbeitest, so ist long double gleich double
Grüsslinein long double sit etwas grösser
4.9 * 10 hoch 308
1.7 * 10 hoch paartausendnochwasNicht laut der MSDN:
http://msdn.microsoft.com/en-us/library/s3f49ktz(VS.80).aspxWie gesagt, unter anderen Compiler ist long double grösser, unter Visual Studio allerdings nicht.
@grossezahl
Wenn du grosse Zahlen genau haben musst, dann such im Forum oder im Internet nach "C++ Währung" oder "C++ Currency". "Big Integer" könnte auch noch was bringen.
Es gibt viele Möglichkeiten wie man es realisieren kann. Man kann den Overflow von normalen Zahlen abfangen und dann neue zur Verfügung stellen und dann eben Listen von Zahlen machen, welche eine Zahl darstellen.
Ich selber habe mir eine Klasse erstellt mit der BCD-Technik (Binary Coded Decimal). Ist grundsätzlich etwas sehr ähnliches, wie wenn du antatt mit der Zahl direkt, mit den Zeichen rechnest.
usw. usf.Grüssli