<?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[Boost lexical_cast und locale]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich frage mich gerade bei einem Programm von mir, warum es nicht meckert. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>In der Main-Methode setze ich die Locale-Einstellung auf Deutsch und UTF-8 mit</p>
<pre><code class="language-cpp">setlocale (LC_ALL, &quot;de_DE.UTF-8&quot;);
</code></pre>
<p>Im weiteren Programmverlauf konvertiere ich std_strings in double-Zahlen mit der lexical_cast-Funktion der Boost-Library. In den Strings verwenden die Double-Zahlen den Punkt als Dezimaltrennzeichen.</p>
<pre><code class="language-cpp">string strVar = &quot;0.001&quot;;
cout &lt;&lt; strVar &lt;&lt; endl;
double dblVar = boost::lexical_cast&lt; double &gt;(strVar );
cout &lt;&lt; dblVar &lt;&lt; endl;
</code></pre>
<p>Die Variable wird ohne Probleme konvertiert. Bei der Ausgabe der beiden Variablen wird beides Mal &quot;0.001&quot; ausgegeben. Nach der deutschen Formateinstellung müsste aber &quot;0,001&quot; ausgegeben werden.</p>
<p>Wird durch die obige setlocale-Einstellung die Zahlenformatierung nicht gesetzt?<br />
Was müsste ich machen, damit die Zahlenformatierung ebenfalls auf deutsch ist?</p>
<p>Das Datum wird mit diesen Einstellungen jedenfalls im deutschen Format ausgegeben.</p>
<p>Viele Grüße,</p>
<p>ottixus</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304056/boost-lexical_cast-und-locale</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 02:54:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304056.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 May 2012 21:19:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Boost lexical_cast und locale on Mon, 28 May 2012 21:19:15 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich frage mich gerade bei einem Programm von mir, warum es nicht meckert. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>In der Main-Methode setze ich die Locale-Einstellung auf Deutsch und UTF-8 mit</p>
<pre><code class="language-cpp">setlocale (LC_ALL, &quot;de_DE.UTF-8&quot;);
</code></pre>
<p>Im weiteren Programmverlauf konvertiere ich std_strings in double-Zahlen mit der lexical_cast-Funktion der Boost-Library. In den Strings verwenden die Double-Zahlen den Punkt als Dezimaltrennzeichen.</p>
<pre><code class="language-cpp">string strVar = &quot;0.001&quot;;
cout &lt;&lt; strVar &lt;&lt; endl;
double dblVar = boost::lexical_cast&lt; double &gt;(strVar );
cout &lt;&lt; dblVar &lt;&lt; endl;
</code></pre>
<p>Die Variable wird ohne Probleme konvertiert. Bei der Ausgabe der beiden Variablen wird beides Mal &quot;0.001&quot; ausgegeben. Nach der deutschen Formateinstellung müsste aber &quot;0,001&quot; ausgegeben werden.</p>
<p>Wird durch die obige setlocale-Einstellung die Zahlenformatierung nicht gesetzt?<br />
Was müsste ich machen, damit die Zahlenformatierung ebenfalls auf deutsch ist?</p>
<p>Das Datum wird mit diesen Einstellungen jedenfalls im deutschen Format ausgegeben.</p>
<p>Viele Grüße,</p>
<p>ottixus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2216543</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2216543</guid><dc:creator><![CDATA[ottixus]]></dc:creator><pubDate>Mon, 28 May 2012 21:19:15 GMT</pubDate></item><item><title><![CDATA[Reply to Boost lexical_cast und locale on Wed, 30 May 2012 15:01:01 GMT]]></title><description><![CDATA[<p>Wenn ich mich nicht sehr irre, hat jeder C++ stream ein eigenes autonomes C++ locale-objekt mit dem die Formatierung vorgenommen wird. Ich bezweifle auch, dass setlocale die globale C++ locale ändert, wohingegen das ändern der globalen C++ locale auch die C locale ändert. Schon versucht, cout über die stream-methode imbue eine deutsche C++ locale zu übergeben?</p>
<blockquote>
<p>Das Datum wird mit diesen Einstellungen jedenfalls im deutschen Format ausgegeben.</p>
</blockquote>
<p>Hm, ich kenne grade keinen Streamoperator, der ein Datum formatiert, wie hast du es denn gemacht? Womöglich wurde die C-locale benutzt. Datumsformatierung via strftime vielleicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2217324</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2217324</guid><dc:creator><![CDATA[Cachus]]></dc:creator><pubDate>Wed, 30 May 2012 15:01:01 GMT</pubDate></item></channel></rss>