<?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[C++11 double auf Nachkommastellen runden]]></title><description><![CDATA[<p>Ich google schon eine Weile, seh ich das richtig:</p>
<p>Es gibt auch weiterhin keine Funktion, die z.B. folgendes ermöglicht:</p>
<pre><code>std::round(-32.4356, 2) =  -32.44
</code></pre>
<p>Was ist die effzienteste Methode, dass in C++ selber zu realisieren <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>
]]></description><link>https://www.c-plusplus.net/forum/topic/313556/c-11-double-auf-nachkommastellen-runden</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 03:55:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/313556.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Feb 2013 12:32:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Mon, 04 Feb 2013 12:32:02 GMT]]></title><description><![CDATA[<p>Ich google schon eine Weile, seh ich das richtig:</p>
<p>Es gibt auch weiterhin keine Funktion, die z.B. folgendes ermöglicht:</p>
<pre><code>std::round(-32.4356, 2) =  -32.44
</code></pre>
<p>Was ist die effzienteste Methode, dass in C++ selber zu realisieren <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2295949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295949</guid><dc:creator><![CDATA[RundeSache]]></dc:creator><pubDate>Mon, 04 Feb 2013 12:32:02 GMT</pubDate></item><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Mon, 04 Feb 2013 12:48:43 GMT]]></title><description><![CDATA[<p>Sowas ist ja auch Quatsch ... zumindest, wenn dein std::round double liefern soll. Ein Zeichenkettenergebnis schon eher ... aber dann kannst du auch gleich einen ostream mit fixed und entsprechender precision konfigurieren.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;iomanip&gt;
using namespace std;
int main()
{
    cout &lt;&lt; fixed &lt;&lt; setprecision(2) &lt;&lt; -32.4356 &lt;&lt; endl;
}
</code></pre>
<p>Ausgabe:</p>
<pre><code>-32.44
</code></pre>
<p>Ich hoffe, du weißt, dass weder der Wert -32.4356 noch -32.44 exakt als double darstellbar ist. Du kannst aber die Ausgabe auf eine bestimmte Zahl von Stellen beschränken, auf diese Stellenzahl runden und dann ggf Nullen am Ende wegschmeißen. Das ist das, was hier passiert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295951</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Mon, 04 Feb 2013 12:48:43 GMT</pubDate></item><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Mon, 04 Feb 2013 12:38:18 GMT]]></title><description><![CDATA[<p>Epsilon-Vergleich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295952</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295952</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Mon, 04 Feb 2013 12:38:18 GMT</pubDate></item><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Mon, 04 Feb 2013 12:49:54 GMT]]></title><description><![CDATA[<p>--</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295953</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Mon, 04 Feb 2013 12:49:54 GMT</pubDate></item><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Mon, 04 Feb 2013 12:48:05 GMT]]></title><description><![CDATA[<p>Ja wie würdet ihr das denn angehen, wenn ihr Testfälle schreibt wo doubles von Berechnungen überprüft werden sollen?</p>
<pre><code>Assert::AreEqual(myClass.foo() /* liefert double */, -32.44 /* gerundeter Erwartungswert */);
</code></pre>
<p><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="😕"
    /> Ich hätte jetzt versucht das Ergebnis von foo() auch zu runden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2295957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295957</guid><dc:creator><![CDATA[RundeSache]]></dc:creator><pubDate>Mon, 04 Feb 2013 12:48:05 GMT</pubDate></item><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Mon, 04 Feb 2013 12:49:46 GMT]]></title><description><![CDATA[<p>RundeSache schrieb:</p>
<blockquote>
<p>Ja wie würdet ihr das denn angehen, wenn ihr Testfälle schreibt wo doubles von Berechnungen überprüft werden sollen?</p>
</blockquote>
<p>Durch Angabe einer Toleranz:</p>
<pre><code class="language-cpp">BOOST_CHECK_CLOSE(1234.5, testVar, 0.00001);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2295958</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2295958</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Mon, 04 Feb 2013 12:49:46 GMT</pubDate></item><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Tue, 05 Feb 2013 08:00:14 GMT]]></title><description><![CDATA[<p>daddy_felix schrieb:</p>
<blockquote>
<p>RundeSache schrieb:</p>
<blockquote>
<p>Ja wie würdet ihr das denn angehen, wenn ihr Testfälle schreibt wo doubles von Berechnungen überprüft werden sollen?</p>
</blockquote>
<p>Durch Angabe einer Toleranz:</p>
<pre><code class="language-cpp">BOOST_CHECK_CLOSE(1234.5, testVar, 0.00001);
</code></pre>
</blockquote>
<p>Da gibt es noch mehr Möglichkeiten. Siehe <a href="http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm" rel="nofollow">hier</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2296105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2296105</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 05 Feb 2013 08:00:14 GMT</pubDate></item><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Tue, 05 Feb 2013 14:36:23 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Siehe <a href="http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm" rel="nofollow">hier</a>.</p>
</blockquote>
<p>Dein Link schrieb:</p>
<blockquote>
<p>This article is obsolete [...]<br />
In short, stop reading. Click this link.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2296234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2296234</guid><dc:creator><![CDATA[obulus]]></dc:creator><pubDate>Tue, 05 Feb 2013 14:36:23 GMT</pubDate></item><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Tue, 05 Feb 2013 18:27:14 GMT]]></title><description><![CDATA[<p>obulus schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Siehe <a href="http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm" rel="nofollow">hier</a>.</p>
</blockquote>
<p>Dein Link schrieb:</p>
<blockquote>
<p>This article is obsolete [...]<br />
In short, stop reading. Click this link.</p>
</blockquote>
</blockquote>
<p>... Gab es irgendeinen Grund, das zu zitieren?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2296274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2296274</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 05 Feb 2013 18:27:14 GMT</pubDate></item><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Tue, 05 Feb 2013 18:36:03 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>... Gab es irgendeinen Grund, das zu zitieren?</p>
</blockquote>
<p>Ja, weil du den Inhalt deines Links offenbar sonst nicht liest. Hättest auch gleich richtig verlinken können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2296280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2296280</guid><dc:creator><![CDATA[obulus]]></dc:creator><pubDate>Tue, 05 Feb 2013 18:36:03 GMT</pubDate></item><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Tue, 05 Feb 2013 18:54:43 GMT]]></title><description><![CDATA[<p>Den kann auch jeder selbst anklicken. Aber gut...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2296282</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2296282</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 05 Feb 2013 18:54:43 GMT</pubDate></item><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Tue, 05 Feb 2013 19:13:15 GMT]]></title><description><![CDATA[<blockquote>
<p>Sowas ist ja auch Quatsch ... zumindest, wenn dein std::round double liefern soll.</p>
</blockquote>
<p>Wieso soll das Quatsch sein wenn es double liefert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2296284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2296284</guid><dc:creator><![CDATA[homoioteleuton]]></dc:creator><pubDate>Tue, 05 Feb 2013 19:13:15 GMT</pubDate></item><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Wed, 06 Feb 2013 09:04:35 GMT]]></title><description><![CDATA[<p>homoioteleuton schrieb:</p>
<blockquote>
<blockquote>
<p>Sowas ist ja auch Quatsch ... zumindest, wenn dein std::round double liefern soll.</p>
</blockquote>
<p>Wieso soll das Quatsch sein wenn es double liefert?</p>
</blockquote>
<p>Wozu solltest du dann runden wollen und was wäre dein Ergebnis?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2296375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2296375</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 06 Feb 2013 09:04:35 GMT</pubDate></item><item><title><![CDATA[Reply to C++11 double auf Nachkommastellen runden on Wed, 06 Feb 2013 10:16:55 GMT]]></title><description><![CDATA[<p>homoioteleuton schrieb:</p>
<blockquote>
<blockquote>
<p>Sowas ist ja auch Quatsch ... zumindest, wenn dein std::round double liefern soll.</p>
</blockquote>
<p>Wieso soll das Quatsch sein wenn es double liefert?</p>
</blockquote>
<p>...weil die Funktion nicht wirklich das tun kann, was sie verspricht. Das hat was mit der Menge der Zahlen zu tun, die du per double exakt darstellen kannst. -32,44 ist keine davon. Die nächsten beiden per double-Format darstellbaren Zahlen wären</p>
<p>-32,439999999999997726...<br />
-32,440000000000004831...</p>
<p>Dazwischen gibt es nichts. Die beiden Zahlen sehen deswegen so &quot;krumm&quot; aus, weil das Fließkommaformat (*) binär und nicht dezimal funktioniert. Das, was man sieht, wenn man einen double-Wert &quot;ausgibt&quot;, ist auch immer nur eine gerundete Dezimaldarstellung, die den genauen double-Wert typischerweise <em>nicht</em> widerspiegelt.</p>
<p>(* Ich nehme hier einfach IEEE-754 an)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2296391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2296391</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 06 Feb 2013 10:16:55 GMT</pubDate></item></channel></rss>