# c++ Double nach String konvetieren



## my-azur (25. August 2006)

Hallo,

ich schreiben in c++ in der Console einen (Taschen)Rechner.
Und möchte eine Double Wert in einen String Array schreiben!

Weiß wer wie ich das Konvertieren kann?

Danke
mfg


----------



## Navy (25. August 2006)

Das kommt darauf an, wie exakt Du es haben möchtest...

Normalerweise reicht


```
stringstream NumberString;
NumberString << $DEINEZAHL;   
string Number = NumberString.str();
```

HTH

  Navy


----------



## my-azur (25. August 2006)

Danke werde ich gleich Probieren


----------



## my-azur (25. August 2006)

ich bekomme folgende Fehler:
bin noch anfänger

294 c:\dokume~1\admini~1\eigene~1\c__~1\erweit~2.cpp
 `stringstream' undeclared (first use this function)
294 c:\dokume~1\admini~1\eigene~1\c__~1\erweit~2.cpp
 (Each undeclared identifier is reported only once
294 c:\dokume~1\admini~1\eigene~1\c__~1\erweit~2.cpp
 for each function it appears in.)
294 c:\dokume~1\admini~1\eigene~1\c__~1\erweit~2.cpp
 parse error before `;'
295 c:\dokume~1\admini~1\eigene~1\c__~1\erweit~2.cpp
 `NumberString' undeclared (first use this function)
295 c:\dokume~1\admini~1\eigene~1\c__~1\erweit~2.cpp
 `$d_ergebnis' undeclared (first use this function)


----------



## Buba235 (25. August 2006)

Hallo!


Hast du die Headerdatei für Strings eingebunden?


----------



## Navy (25. August 2006)

wie wäre es mit einem "#include <sstream>"?

Für soclhe Fragen existiert die Suche hier oder bei google. Denk auch an den Namespace, sofern Du ihn noch nicht verwendest.


----------



## Buba235 (25. August 2006)

Tja da haben wir zur gleichen Zeit das gleiche (mehr oder weniger) gepostet!


----------



## my-azur (25. August 2006)

Hi,
@Buba235: Ja habe ich

@Navy: 
also ich benutze Dev-C++ 4
und bekomme nun diese Meldung ;-)

6 c:\dokume~1\admini~1\eigene~1\c__~1\erweit~2.cpp
 sstream: No such file or directory


----------



## hendrik100 (26. August 2006)

das problem hatte ich auch.
das liegt an deiner compiler-version, in der version 4 ist die include-datei noch nicht enthalten, in der 5er version schon, aber da ist komischerweise wieder alles anders als bei 4er.
den 5er würde ich daher nicht empfehlen, ist auch bisher nur ne beta!


----------



## hendrik100 (26. August 2006)

so funktioniert es!

```
char temp[100];
double zahl = 387.311126708984;
sprintf(temp,"%.12f",zahl);
cout << temp << endl;
```


----------



## deepthroat (28. August 2006)

Hi.





			
				hendrik100 hat gesagt.:
			
		

> das problem hatte ich auch.
> das liegt an deiner compiler-version, in der version 4 ist die include-datei noch nicht enthalten, in der 5er version schon, aber da ist komischerweise wieder alles anders als bei 4er.
> den 5er würde ich daher nicht empfehlen, ist auch bisher nur ne beta!


Die IDE hat zwar Beta-Status ist aber ziemlich stabil. Außerdem ist der Compiler und die C++ Bibliotheken die da dabei sind ziemlich aktuell und standardkonform. Wenn du also C++ lernen willst, dann solltest du auf jeden Fall einen Compiler verwenden der auch den C++ Standard weitestgehend unterstützt und nicht den veralteten Compiler mitsamt Bibliotheken von Dev-Cpp 4 verwenden. Es hat doch wenig Sinn veralteten Code zu schreiben der von keinem halbwegs aktuellen (strikteren) Compiler kompiliert wird - dann mußt du nur später alles wieder neu lernen; und das sieht man ja bei der Rechtschreibreform was das dann für ein Kuddelmuddel wird... 

Gruß


----------



## Kriz (29. August 2006)

Wobei die Dev-C++ IDE recht wenig mit dem zugrundeliegenden MingW32-Compilerpack zu tun hat, sprich wer sein Dev-C++ per WebUpdater ständig auf dem neuesten Stand hält, der besitzt einen relativ aktuellen gcc Compiler.

Zum Problem:

```
#include <sstream>
#include <string>

std::string double2str(double d)
{
    std::stringstream ss;
    ss << std::setprecision(16) << d;
    return ss.str();
}
```
Die Präzision ist noch ein lustiges Beiwerk, da C++ von Natur recht schnell zum Runden bzw. Anzeigen in wissenschaftlicher Notation neigt.


----------

