<?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[Unit Testing: Wie falsch darf es heute sein? (float, double, ...)]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe folgende Frage, welche beim systematischen Unit Testing plötzlich relevant geworden ist: Wenn ich Gleitkommazahlen auf Gleichheit testen will, gibt es spezielle Funktionen, welche dies mit einer Angabe Epsilon für die erlaubte Abweichung tun. Was für einen Wert soll man aber für Epsilon nehmen? Gibt es irgend eine gute Konstante hierfür? <code>epsilon</code> von <code>numeric_limits</code> ist wohl nicht gut?</p>
<p>Ich programmiere nicht für die Raumfahrt und wende Operationen nicht 10'000-fach an, aber irgendwie widerstrebt es mir, einfach überall diese Magic Numbers à la 10e-7 zu schreiben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/307132/unit-testing-wie-falsch-darf-es-heute-sein-float-double</link><generator>RSS for Node</generator><lastBuildDate>Fri, 07 Aug 2026 18:05:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/307132.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 Aug 2012 14:26:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 14:26:32 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe folgende Frage, welche beim systematischen Unit Testing plötzlich relevant geworden ist: Wenn ich Gleitkommazahlen auf Gleichheit testen will, gibt es spezielle Funktionen, welche dies mit einer Angabe Epsilon für die erlaubte Abweichung tun. Was für einen Wert soll man aber für Epsilon nehmen? Gibt es irgend eine gute Konstante hierfür? <code>epsilon</code> von <code>numeric_limits</code> ist wohl nicht gut?</p>
<p>Ich programmiere nicht für die Raumfahrt und wende Operationen nicht 10'000-fach an, aber irgendwie widerstrebt es mir, einfach überall diese Magic Numbers à la 10e-7 zu schreiben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242888</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242888</guid><dc:creator><![CDATA[*rant*]]></dc:creator><pubDate>Fri, 17 Aug 2012 14:26:32 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 14:43:56 GMT]]></title><description><![CDATA[<p>Mach doch einfach selbst eine Konstante ala</p>
<pre><code class="language-cpp">constexpr int epsilon = 10e-7;
</code></pre>
<p><em>Welchen</em> Epsilon du nimmst, ist halt abhängig davon wie genau du es brauchst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242890</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242890</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 17 Aug 2012 14:43:56 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 14:46:10 GMT]]></title><description><![CDATA[<p>Auf diese Frage gibt es keine richtige Antwort. Auf absolutes epsilon vergleichen ist doof, weil die Stärke von Fließkommazahlen ja gerade ihre nahezuhe Skalenfreiheit ist. Auf relatives Epsilon zu vergleichen ist doof, weil das bei Nullvergleichen schief geht.</p>
<p>Lies mal hier:<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>Sone schrieb:</p>
<blockquote>
<p>Welchen Epsilon du nimmst, ist halt abhängig davon wie genau du es brauchst.</p>
</blockquote>
<p>Kennst du Dieter Nuhr?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242892</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 17 Aug 2012 14:46:10 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 14:59:08 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Lies mal hier:<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>
</blockquote>
<p>Ich arbeite bereits mit relativen Fehlern, aber diese Beschreibung zeigt auch noch die Probleme dieser Vorgehensweise auf <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f4a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--light_bulb"
      title=":bulb:"
      alt="💡"
    /></p>
<p>Mit Bitmustern mag ich nicht mehr arbeiten, das ist doch abartig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242894</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242894</guid><dc:creator><![CDATA[*rant*]]></dc:creator><pubDate>Fri, 17 Aug 2012 14:59:08 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 15:21:35 GMT]]></title><description><![CDATA[<p>/rant/ schrieb:</p>
<blockquote>
<p>Mit Bitmustern mag ich nicht mehr arbeiten, das ist doch abartig.</p>
</blockquote>
<p>Das ist doch eigentlich keine schlechte Idee. Dafür gibt es doch einen Quasistandard für Fließkommazahlen und der wurde mit Absicht so gewählt, dass solche Tricks möglich sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242895</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 17 Aug 2012 15:21:35 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 15:41:09 GMT]]></title><description><![CDATA[<p>/rant/ schrieb:</p>
<blockquote>
<p>Mit Bitmustern mag ich nicht mehr arbeiten, das ist doch abartig.</p>
</blockquote>
<p>Brauchst du gar nicht, <a href="http://www.boost.org/doc/libs/1_50_0/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html" rel="nofollow">http://www.boost.org/doc/libs/1_50_0/libs/math/doc/sf_and_dist/html/math_toolkit/utils/next_float/float_distance.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242898</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242898</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Fri, 17 Aug 2012 15:41:09 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 15:48:42 GMT]]></title><description><![CDATA[<p>welches epsilon richtig ist, hängt von deinem Problem ab.</p>
<p>wenn du als Ergebnis 1.e-7 erwartest, sollte dein Epsilon viel kleiner sein. erwartest du aber 1.e+7 dann kann dein vorher gewähltes Epsilon wieder für die Tonne sein.</p>
<p>was für Differenzen zwischen zahlen ganz gut funktioniert, sind prozentuale Abweichungen:</p>
<pre><code class="language-cpp">//unterschied zwischen a und b in prozent
result=std::abs((a-b)/b)*100 ;// b != 0
</code></pre>
<p>In diesem Fall, von besonders kleinen Zahlen abgesehen, gibt dir result den Unterschied beider Zahlen in Prozent an. Dann wähle als Schranke 0.001% oder so und du bist auf der sicheren Seite. Meistens. Wenn du ein Ergebnis nahe 0 erwartest, ist die Technik aber nicht zu gebrauchen, da bereits kleine Abweichungen zu großen prozentualen Änderungen führen können.</p>
<p>Es kommt natürlich immer darauf an, was du brauchst. Wenn du eine Aufgabe hast, für die du nachts auf dem FP-Standard schlafen musst, dann wird dir das wahrscheinlich nicht reichen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242899</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Fri, 17 Aug 2012 15:48:42 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 16:06:56 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Welchen Epsilon du nimmst, ist halt abhängig davon wie genau du es brauchst.</p>
</blockquote>
<p>Kennst du Dieter Nuhr?</p>
</blockquote>
<p>otze schrieb:</p>
<blockquote>
<p>welches epsilon richtig ist, hängt von deinem Problem ab.</p>
</blockquote>
<p>Wollt ihr mich hier verarschen oder was? <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242901</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 17 Aug 2012 16:06:56 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 16:10:02 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Welchen Epsilon du nimmst, ist halt abhängig davon wie genau du es brauchst.</p>
</blockquote>
<p>Kennst du Dieter Nuhr?</p>
</blockquote>
<p>otze schrieb:</p>
<blockquote>
<p>welches epsilon richtig ist, hängt von deinem Problem ab.</p>
</blockquote>
<p>Wollt ihr mich hier verarschen oder was? <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="😃"
    /></p>
</blockquote>
<p>Dann sag mal, welches epsilon ich bei einer Genauigkeit von 10^(-5) (d.h. 5 Stellen sollen im Rahmen der Rundung übereinstimmen) brauche.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242902</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242902</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 17 Aug 2012 16:10:02 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 16:25:57 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Wollt ihr mich hier verarschen oder was? <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="😃"
    /></p>
</blockquote>
<pre><code class="language-cpp">double a=1;
double f=0.1;
double b = 10*f;

//beides sollte ohne Rundungsfehler &quot;0&quot; ausgeben.
std::cout&lt;&lt;(a-b);
std::cout&lt;&lt;(1.e+50*a-1.e+50*b);

//anderer Fall: die argumente sind alle ein Vielfaches kleiner als dein 1.e-7;
std::cout&lt;&lt;(1.e-50*a-1.e-50*b);
//also machen wir mal einen Fehler rein:
std::cout&lt;&lt;(1.e-50*a-3.e-50*b);
//-&gt; völlig undetektierbar für dein epsilon
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2242904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242904</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Fri, 17 Aug 2012 16:25:57 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 16:44:55 GMT]]></title><description><![CDATA[<p>otze schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Wollt ihr mich hier verarschen oder was? <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="😃"
    /></p>
</blockquote>
<pre><code class="language-cpp">double a=1;
double f=0.1;
double b = 10*f;

//beides sollte ohne Rundungsfehler &quot;0&quot; ausgeben.
std::cout&lt;&lt;(a-b);
std::cout&lt;&lt;(1.e+50*a-1.e+50*b);

//anderer Fall: die argumente sind alle ein Vielfaches kleiner als dein 1.e-7;
std::cout&lt;&lt;(1.e-50*a-1.e-50*b);
//also machen wir mal einen Fehler rein:
std::cout&lt;&lt;(1.e-50*a-3.e-50*b);
//-&gt; völlig undetektierbar für dein epsilon
</code></pre>
</blockquote>
<p>??<br />
Mein Epsilon? Ich hab gar nicht 10e-7 vorgeschlagen. Ich hab nur gesagt, falls er magic constants vermeiden will soll er ne Konstante definieren... o.O</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242912</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 17 Aug 2012 16:44:55 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 17:01:39 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>SeppJ schrieb:</p>
<blockquote>
<p>Sone schrieb:</p>
<blockquote>
<p>Welchen Epsilon du nimmst, ist halt abhängig davon wie genau du es brauchst.</p>
</blockquote>
<p>Kennst du Dieter Nuhr?</p>
</blockquote>
<p>otze schrieb:</p>
<blockquote>
<p>welches epsilon richtig ist, hängt von deinem Problem ab.</p>
</blockquote>
<p>Wollt ihr mich hier verarschen oder was? <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="😃"
    /></p>
</blockquote>
<p>Dann sag mal, welches epsilon ich bei einer Genauigkeit von 10^(-5) (d.h. 5 Stellen sollen im Rahmen der Rundung übereinstimmen) brauche.</p>
</blockquote>
<p>Man nimmt einfach einen festen Epsilon von 1e-5 (also 10<sup>-5</sup>):</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;complex&gt;

int main()
{
        float a = 0.123454;
        float b = 0.123458;

        std::cout &lt;&lt; (std::abs(a - b) &lt; 1e-5) &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2242917</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242917</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 17 Aug 2012 17:01:39 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 17:22:16 GMT]]></title><description><![CDATA[<p>Kann man diesen Sone mal sperren? Der schreibt immer sonen Mist und spammt damit jeden Thread voll.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242921</guid><dc:creator><![CDATA[callforban]]></dc:creator><pubDate>Fri, 17 Aug 2012 17:22:16 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 17:27:41 GMT]]></title><description><![CDATA[<p>callforban schrieb:</p>
<blockquote>
<p>Kann man diesen <strong>Sone</strong> mal sperren? Der schreibt immer <strong>sonen</strong> Mist und spammt damit jeden Thread voll.</p>
</blockquote>
<p>Made my Day <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242924</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242924</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Fri, 17 Aug 2012 17:27:41 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 17:29:14 GMT]]></title><description><![CDATA[<p>Cyres schrieb:</p>
<blockquote>
<p>callforban schrieb:</p>
<blockquote>
<p>Kann man diesen <strong>Sone</strong> mal sperren? Der schreibt immer <strong>sonen</strong> Mist und spammt damit jeden Thread voll.</p>
</blockquote>
<p>Made my Day <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="😃"
    /></p>
</blockquote>
<p>Der ist alt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242925</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242925</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Fri, 17 Aug 2012 17:29:14 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 18:05:20 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Man nimmt einfach einen festen Epsilon von 1e-5 (also 10<sup>-5</sup>):</p>
</blockquote>
<p>*Seufz*</p>
<p>Da fällst wohl auf alles rein? Glaubst du, ich hätte die Frage gestellt, wenn die Antwort so einfach wäre? Und du bringst trotzdem stolz die naivstmögliche Antwort, sogar nachdem otze und ich schon insgesamt 3x erklärt und verlinkt haben, wieso das falsch ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242940</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 17 Aug 2012 18:05:20 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 18:50:27 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Man nimmt einfach einen festen Epsilon von 1e-5 (also 10<sup>-5</sup>):</p>
</blockquote>
<p>kleiner Tipp: wenn wir von Werten von a und b reden, die um die 1.e+50 liegen, dann kann float die Abweichung &quot;1.e-5&quot; gar nicht mehr darstellen. Das gilt dann natürlich auch in den Differenzen, das heißt, a-b &gt; 1.e-5 ist immer wahr, wenn a!=b.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242951</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242951</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Fri, 17 Aug 2012 18:50:27 GMT</pubDate></item><item><title><![CDATA[Reply to Unit Testing: Wie falsch darf es heute sein? (float, double, ...) on Fri, 17 Aug 2012 19:20:15 GMT]]></title><description><![CDATA[<p>/rant/ schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>Ich habe folgende Frage, welche beim systematischen Unit Testing plötzlich relevant geworden ist: Wenn ich Gleitkommazahlen auf Gleichheit testen will, gibt es spezielle Funktionen, welche dies mit einer Angabe Epsilon für die erlaubte Abweichung tun. Was für einen Wert soll man aber für Epsilon nehmen? Gibt es irgend eine gute Konstante hierfür? <code>epsilon</code> von <code>numeric_limits</code> ist wohl nicht gut?</p>
<p>Ich programmiere nicht für die Raumfahrt und wende Operationen nicht 10'000-fach an, aber irgendwie widerstrebt es mir, einfach überall diese Magic Numbers à la 10e-7 zu schreiben <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Setz Dein Epsilon so klein wie Möglich.<br />
Steig ruhig mal mit e-50 ins rennen und guck, was passiert.<br />
Kannst Du das Epsilon halten, ist doch alles super. Wenn nicht, musst Du überlegen, ob die größere Unschärfe bei Gleichheit noch zu sicheren Ergebnissen führt.</p>
<p>Dein Epsilon ist abhängig von den Daten, die verarbeitest und natürlich ihrem Maßstab. Möchtest Du Millimetergenau arbeiten, ist das Epsilon abhängig von der Frage, ob Du in Metern, Zentimetern oder Millimetern misst.</p>
<p>Weiterhin empfehle ich Dir, das Epsilon bedarfsgerecht festzulegen. So brauchst du für die Übereinstimmung von Strecken (z.B. 3D-Punkte) eventuell ein anderes Epsilon als für die Übereinstimmung von Winkeln.</p>
<p>Ich benutze dafür eine Klasse Double, die Vergleiche automatisch regelt. Nimm ein Template, leite die Datentypen ab und gib jedem Datentyp ein entsprechendes Epsilon mit.</p>
<p>Keine Raumfahrt... nur CAD.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2242957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2242957</guid><dc:creator><![CDATA[Xin]]></dc:creator><pubDate>Fri, 17 Aug 2012 19:20:15 GMT</pubDate></item></channel></rss>