Seite 1 von 1

Ausgabe von float-Werten über wostringstream

Verfasst: 17.05.2022, 22:42
von gombolo

Code: Alles auswählen

std::wostringstream debug;
debug << "Ausgabe: "<<" float(1000 / 52) << "\n";
OutputDebugStringW(debug.str().c_str());
Der Code oben sollte doch als Ergebnis 19,23076923076923 ausgeben, aber ich erhalten als Ausgabe nur 19

Auch der Einbau von

Code: Alles auswählen

std::setprecision(10)
brachte keinen Erfolg.

Re: Ausgabe von float-Werten über wostringstream

Verfasst: 17.05.2022, 22:52
von Krishty
1000 / 52 == 19 weil du int durch int teilst.

Korrekt wäre float(1000) / float(52) oder 1000.f / 52.f.

Re: Ausgabe von float-Werten über wostringstream

Verfasst: 17.05.2022, 22:57
von gombolo
oookkkk...warum habe ich gedacht das float(y/x) funktionert? Hat das mal früher funktioniert?

Naja...nach ein paar Jahren Pause mit C/C++ vergisst man soooo viel.
smilie.jpg
smilie.jpg (13.63 KiB) 500 mal betrachtet
Danke für den Hinweis....

Re: Ausgabe von float-Werten über wostringstream

Verfasst: 18.05.2022, 19:27
von Lord Delvin
gombolo hat geschrieben: 17.05.2022, 22:57 Hat das mal früher funktioniert?
Nein und auch in anderen Sprachen sollte das nicht funktionieren.

Ich habe, weil ich selbst gerade bei sowas wie byte/int immer wieder Fehler mache die nervtötend sind bei mir getypte Literale für alle Typen eingebaut. Ist gewöhnungsbedürftig aber letztlich sehr produktiv.
Wenn du float willst solltest du immer das f verwenden.