<?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[Frage zum Vergleich mit fmod]]></title><description><![CDATA[<p>Hallo Allerseits,<br />
Ich habe ein kleines Problem mit der Funktion fmod. Und zwar möchte ich wissen, ob eine Zahl durch eine andere (konsante) Zahl teilbar ist. Hier mein Code:</p>
<pre><code>long double epsilon = numeric_limits&lt;long double&gt;::epsilon();
if(fmod(time,0.04L) &lt;= epsilon)
{
    //mache etwas
}
</code></pre>
<p>Die Ausgabe dabei ist:</p>
<pre><code>Ergebnis von fmod: 2e-19
Wert von epsilon:  1.8e-19
</code></pre>
<p>(&quot;time&quot; ist übrigens auch long double, als Compiler benutzte ich mingw 32bit).</p>
<p>Meine Frage ist nun: Gibt es einen &quot;Standard Weg&quot; das Ergebnis von fmod zu prüfen? Irgendwie widerstrebt mir der Gedanke in meinen Code eine magic Number einzuführen, zB:</p>
<pre><code>if(fmod(time,0.04L) &lt;= 8*epsilon)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/311565/frage-zum-vergleich-mit-fmod</link><generator>RSS for Node</generator><lastBuildDate>Mon, 03 Aug 2026 14:16:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/311565.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 08 Dec 2012 17:08:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zum Vergleich mit fmod on Sat, 08 Dec 2012 17:08:46 GMT]]></title><description><![CDATA[<p>Hallo Allerseits,<br />
Ich habe ein kleines Problem mit der Funktion fmod. Und zwar möchte ich wissen, ob eine Zahl durch eine andere (konsante) Zahl teilbar ist. Hier mein Code:</p>
<pre><code>long double epsilon = numeric_limits&lt;long double&gt;::epsilon();
if(fmod(time,0.04L) &lt;= epsilon)
{
    //mache etwas
}
</code></pre>
<p>Die Ausgabe dabei ist:</p>
<pre><code>Ergebnis von fmod: 2e-19
Wert von epsilon:  1.8e-19
</code></pre>
<p>(&quot;time&quot; ist übrigens auch long double, als Compiler benutzte ich mingw 32bit).</p>
<p>Meine Frage ist nun: Gibt es einen &quot;Standard Weg&quot; das Ergebnis von fmod zu prüfen? Irgendwie widerstrebt mir der Gedanke in meinen Code eine magic Number einzuführen, zB:</p>
<pre><code>if(fmod(time,0.04L) &lt;= 8*epsilon)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2278502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278502</guid><dc:creator><![CDATA[fmod]]></dc:creator><pubDate>Sat, 08 Dec 2012 17:08:46 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Vergleich mit fmod on Sat, 08 Dec 2012 17:16:17 GMT]]></title><description><![CDATA[<p>Vielleicht sollte ich noch erwähnen, dass &quot;time&quot; den Wert 10 hat (für das Beispiel).<br />
Hier der entsprechende Code mit Ausgabe in codepad<br />
<a href="http://codepad.org/zjBEO3g9" rel="nofollow">http://codepad.org/zjBEO3g9</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278504</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278504</guid><dc:creator><![CDATA[fmod]]></dc:creator><pubDate>Sat, 08 Dec 2012 17:16:17 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Vergleich mit fmod on Sat, 08 Dec 2012 17:20:42 GMT]]></title><description><![CDATA[<p>fmod schrieb:</p>
<blockquote>
<p>Meine Frage ist nun: Gibt es einen &quot;Standard Weg&quot; das Ergebnis von fmod zu prüfen?</p>
</blockquote>
<p>Nein. Jedoch schließe ich aus deiner Benutzung des epsilons hier, dass du nicht wirklich weißt, was dieses epsilon aus limits bedeutet. Daher erst einmal Lesestoff:<br />
<a href="http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html" rel="nofollow">http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html</a><br />
<a href="http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm" rel="nofollow">http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm</a></p>
<p>Die richtige Antwort musst du dir selber nach Bedarf geben: Wie genau soll das Ergebnis sein, ob die Zahlen teilbar sind. Soll das Ergebnis exakt sein, so ist der Datentyp falsch gewählt und du solltest vielleicht eher mit Brüchen arbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2278507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2278507</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 08 Dec 2012 17:20:42 GMT</pubDate></item></channel></rss>