<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Konvertierung von string zu float]]></title><description><![CDATA[<p>Liebe Mitglieder der Comunity</p>
<p>Ich habe ein Problem mit der Konvertierung von std::string in float</p>
<p>bsw &quot;4,76&quot;</p>
<p>Wen ich meine Konvertierungsfunktion benutze,<br />
hat die float variable jedoch den wert 4.0000000 und nicht 4,7600000<br />
die Nachkommerstellen fehlen.</p>
<p>Ich habe im Debugger alles überprüft.<br />
Str = &quot;4,76&quot;<br />
f = 4.0000000</p>
<p>die Funktion sieht so aus</p>
<pre><code>float FW_API STRING_TO_FLOAT(const std::string &amp;Str)
{
	std::stringstream sstr;
	float f;
	sstr &lt;&lt; Str;
	sstr &gt;&gt; f;

	return f;
}
</code></pre>
<p>bei atof kommt das selbe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/329179/konvertierung-von-string-zu-float</link><generator>RSS for Node</generator><lastBuildDate>Sun, 05 Jul 2026 14:54:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/329179.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 11 Nov 2014 15:54:09 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Konvertierung von string zu float on Tue, 11 Nov 2014 15:54:09 GMT]]></title><description><![CDATA[<p>Liebe Mitglieder der Comunity</p>
<p>Ich habe ein Problem mit der Konvertierung von std::string in float</p>
<p>bsw &quot;4,76&quot;</p>
<p>Wen ich meine Konvertierungsfunktion benutze,<br />
hat die float variable jedoch den wert 4.0000000 und nicht 4,7600000<br />
die Nachkommerstellen fehlen.</p>
<p>Ich habe im Debugger alles überprüft.<br />
Str = &quot;4,76&quot;<br />
f = 4.0000000</p>
<p>die Funktion sieht so aus</p>
<pre><code>float FW_API STRING_TO_FLOAT(const std::string &amp;Str)
{
	std::stringstream sstr;
	float f;
	sstr &lt;&lt; Str;
	sstr &gt;&gt; f;

	return f;
}
</code></pre>
<p>bei atof kommt das selbe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427037</guid><dc:creator><![CDATA[Sebastian Müller]]></dc:creator><pubDate>Tue, 11 Nov 2014 15:54:09 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierung von string zu float on Tue, 11 Nov 2014 16:07:44 GMT]]></title><description><![CDATA[<p>Probier mal 4.76</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427040</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Tue, 11 Nov 2014 16:07:44 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierung von string zu float on Tue, 11 Nov 2014 16:21:42 GMT]]></title><description><![CDATA[<p>ahhhhh, daran hat es gelegen.</p>
<p>Jetzt muss ich nur noch eine Konvertierungsfunktion schreibe, die &quot;3,59&quot; in &quot;3.59&quot; konvertiert, weil ich die Strings aus den GUI Objkten direkt auslese.</p>
<p>Danke für den Tipp.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427047</guid><dc:creator><![CDATA[Sebastian Müller]]></dc:creator><pubDate>Tue, 11 Nov 2014 16:21:42 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierung von string zu float on Tue, 11 Nov 2014 16:31:20 GMT]]></title><description><![CDATA[<p>Musst du nicht.<br />
Füg folgendes nach Zeile 3 ein:</p>
<pre><code>sstr.imbue(std::locale(&quot;&quot;));
</code></pre>
<p>Das setzt die Locale vom Stream auf die Standard-Locale des OS, in deinem Fall wohl Deutsch und ermöglicht somit Zahlen etc. wie in Deutsch üblich ein und auszugeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427049</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427049</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Tue, 11 Nov 2014 16:31:20 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierung von string zu float on Wed, 12 Nov 2014 14:02:55 GMT]]></title><description><![CDATA[<p>OK. funktioniert ebenso.</p>
<p>Jedoch eine Frage noch.</p>
<p>Wenn ich &quot;4,56&quot; in float konvertiere, kommt 4,5599999 (oder ähnliches) heraus. kann man die zahl auf die 2 nachkommerstelle runden? (4,4600000)</p>
<p>Ich meine ich häte mal etwas darüber gelesen, warum die Werte minimal abweichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427236</guid><dc:creator><![CDATA[Sebastian Müller]]></dc:creator><pubDate>Wed, 12 Nov 2014 14:02:55 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierung von string zu float on Wed, 12 Nov 2014 14:08:45 GMT]]></title><description><![CDATA[<p>Sebastian Müller schrieb:</p>
<blockquote>
<p>Ich meine ich häte mal etwas darüber gelesen, warum die Werte minimal abweichen.</p>
</blockquote>
<p>Weil floats Gleitkommazahlen im Binärsystem, mit begrenzter Genauigkeit sind.<br />
Und da 4,56 nicht als endliche Binäre Kommazahl darstellbar ist, ist der Wert der Variable eben auch nicht 4,56 -- sondern die näheste darstellbare Zahl.</p>
<p>Wenn du exakte Berechnungen brauchst darfst du kein Float verwenden.<br />
Wenn du nur zwecks der Optik die angezeigten Kommastellen limitieren willst, dann kannst du das natürlich machen.<br />
z.B. mit dem Stream Manipulatoren <code>setprecision</code> und <code>fixed</code><br />
<a href="http://www.cplusplus.com/reference/iomanip/setprecision/" rel="nofollow">http://www.cplusplus.com/reference/iomanip/setprecision/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427239</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 12 Nov 2014 14:08:45 GMT</pubDate></item><item><title><![CDATA[Reply to Konvertierung von string zu float on Wed, 12 Nov 2014 15:23:44 GMT]]></title><description><![CDATA[<p>Jetzt fält es mir wieder ein. Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2427253</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2427253</guid><dc:creator><![CDATA[Sebastian Müller]]></dc:creator><pubDate>Wed, 12 Nov 2014 15:23:44 GMT</pubDate></item></channel></rss>