Ausgabe von float-Werten über wostringstream

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
gombolo
Establishment
Beiträge: 161
Registriert: 26.01.2011, 20:33

Ausgabe von float-Werten über wostringstream

Beitrag 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.
Benutzeravatar
Krishty
Establishment
Beiträge: 8316
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Ausgabe von float-Werten über wostringstream

Beitrag von Krishty »

1000 / 52 == 19 weil du int durch int teilst.

Korrekt wäre float(1000) / float(52) oder 1000.f / 52.f.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Benutzeravatar
gombolo
Establishment
Beiträge: 161
Registriert: 26.01.2011, 20:33

Re: Ausgabe von float-Werten über wostringstream

Beitrag 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) 749 mal betrachtet
Danke für den Hinweis....
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 597
Registriert: 05.07.2003, 11:17

Re: Ausgabe von float-Werten über wostringstream

Beitrag 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.
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Antworten