<?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[Problem mit wstring &amp;lt;-&amp;gt; double konvertierung]]></title><description><![CDATA[<p>Moin! Ich hab mir diese Funktionen für meinen Interpreter geschrieben, aber sie<br />
scheinen die falschen Werte zurückzugeben. Theoretisch könnte der Fehler auch<br />
woanders liegen, das kann ich aber mit ziemlicher Sicherheit ausschließen. Wär<br />
nett wenn ihr mal nach Fehlern gucken könntet:</p>
<pre><code class="language-cpp">double ToDbl(wstring s)
{
	if (s.size() == 0)
		return 0;
	char* buf = new char[s.size()];
	wcstombs(buf, s.c_str(), s.size());
	double d = atof(buf);
	delete [] buf;
	return d;
}

wstring ToWStr(double d)
{
	char buf[80];
	_snprintf(buf, 49, &quot;%f&quot;, d);
	wchar_t wbuf[50];
	mbstowcs(wbuf, buf, 50);
	wstring s(wbuf);
	s = s.substr(0, s.find_last_not_of(L'0') + 1);
	if (s[s.length() - 1] == L'.')
		s = s.substr(0, s.length() - 1);
	return s;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/175166/problem-mit-wstring-lt-gt-double-konvertierung</link><generator>RSS for Node</generator><lastBuildDate>Sat, 19 Sep 2026 01:31:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/175166.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 Mar 2007 17:41:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit wstring &amp;lt;-&amp;gt; double konvertierung on Wed, 07 Mar 2007 17:41:56 GMT]]></title><description><![CDATA[<p>Moin! Ich hab mir diese Funktionen für meinen Interpreter geschrieben, aber sie<br />
scheinen die falschen Werte zurückzugeben. Theoretisch könnte der Fehler auch<br />
woanders liegen, das kann ich aber mit ziemlicher Sicherheit ausschließen. Wär<br />
nett wenn ihr mal nach Fehlern gucken könntet:</p>
<pre><code class="language-cpp">double ToDbl(wstring s)
{
	if (s.size() == 0)
		return 0;
	char* buf = new char[s.size()];
	wcstombs(buf, s.c_str(), s.size());
	double d = atof(buf);
	delete [] buf;
	return d;
}

wstring ToWStr(double d)
{
	char buf[80];
	_snprintf(buf, 49, &quot;%f&quot;, d);
	wchar_t wbuf[50];
	mbstowcs(wbuf, buf, 50);
	wstring s(wbuf);
	s = s.substr(0, s.find_last_not_of(L'0') + 1);
	if (s[s.length() - 1] == L'.')
		s = s.substr(0, s.length() - 1);
	return s;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1241147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241147</guid><dc:creator><![CDATA[___]]></dc:creator><pubDate>Wed, 07 Mar 2007 17:41:56 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit wstring &amp;lt;-&amp;gt; double konvertierung on Wed, 07 Mar 2007 18:01:21 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Da du eh schon mit std::wstring arbeitest, benutzt doch gleich std::wstringstream um die Konvertierung einfacher durchzuführen. Siehe auch die C++ FAQ, den Artikel &quot;Einmal String und zurück&quot;.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241159</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241159</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 07 Mar 2007 18:01:21 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit wstring &amp;lt;-&amp;gt; double konvertierung on Wed, 07 Mar 2007 18:08:42 GMT]]></title><description><![CDATA[<p>Danke für die schnelle Antwort, den wstringstream und die FAQ guck ich mir mal an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241167</guid><dc:creator><![CDATA[___]]></dc:creator><pubDate>Wed, 07 Mar 2007 18:08:42 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit wstring &amp;lt;-&amp;gt; double konvertierung on Wed, 07 Mar 2007 18:27:34 GMT]]></title><description><![CDATA[<p>Juhu, es läuft, nochmal DAAANKE <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Ist allerdings drei mal langsamer als die andere Methode. Aber hauptsache es läuft<br />
erstmal <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241187</guid><dc:creator><![CDATA[___]]></dc:creator><pubDate>Wed, 07 Mar 2007 18:27:34 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit wstring &amp;lt;-&amp;gt; double konvertierung on Wed, 07 Mar 2007 18:45:37 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Wenn dich der höhere Aufwand bei der C++ Variante wirklich im praktischen Betrieb stört, must du entweder<br />
- optimieren : nicht wegen jeder einzelnen Konvertierung durch eine neue Funktion einen neuen wstringstream erstellen und wieder löschen, sondern mit einem wstringstream alle Werte auf einmal konvertieren<br />
- doch die C-Variante benutzen, dann las dich ins Ansi-C Forum verschieben.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241204</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Wed, 07 Mar 2007 18:45:37 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit wstring &amp;lt;-&amp;gt; double konvertierung on Wed, 07 Mar 2007 22:02:45 GMT]]></title><description><![CDATA[<p>Vonwegen Optimierung:<br />
Bei der Umwandlung von Zahlen (auch doubles in &quot;e+&quot; Schreibweise) kann man sich u.U. zu Nutze machen dass nur Codepoints &lt;= U+00F7 vorkommen werden -- und die lassen sich in die meisten Codepages 1:1 übernehmen -- ein Aufruf von wcstombs ist also nicht notwendig. Ich bin mir nichtmal sicher ob es überhaupt Codepages gibt bei denen sich die Zeichen die in einer Textrepresentation eines double vorkommen können nicht gleich wie in Unicode abgebildet werden.</p>
<p>Weiters könnten die Funktionen wohl für die meisten Fälle einen kleinen Stack Buffer verwenden (vielleicht 100 Byte oder so), und nur für längere Strings dynamisch einen Buffer anfordern -- spart auch wieder Zeit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1241317</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1241317</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 07 Mar 2007 22:02:45 GMT</pubDate></item></channel></rss>