<?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[Floatwert beschneiden?]]></title><description><![CDATA[<p>Kann man einen Float Wert beschneiden?</p>
<p>Ich arbeite mit einer Grafikkomponente und erhalte bei einer Position von 17.02 in &quot;Wirklichkeit&quot; laut FloatToStr = 17.02000021374849.</p>
<p>Ich möchte den Schmutz da hinten gern weg haben, damit ich richtig abfragen kann auf Grenzen. Weiss wer wie ich das hinbekomme oder hat nen Tipp?</p>
<p>Ich habe auch schon Werte gesehen die statt 10.01 dann 10.00999984897364 sind.</p>
<p>Die Werte sind erfunden, aber so ist das in der Art. Bin dadrauf gekommen, weil ich abfrage if (a&gt;17.02) ... was ja nicht sein sollte</p>
<p>Beispiel so klappt es nicht</p>
<pre><code class="language-cpp">Memo1-&gt;Lines-&gt;Clear();

    float fvalue = 17.02000012236746834;
    AnsiString tvalue = FloatToStrF(fvalue,ffFixed,10,2);
    Memo1-&gt;Lines-&gt;Add(&quot;AnsiString: &quot;+tvalue);

    fvalue = StrToFloat(tvalue);
    Memo1-&gt;Lines-&gt;Add(&quot;Float: &quot;+FloatToStr(fvalue));
</code></pre>
<p>Ergebnis:<br />
AnsiString: 17,02<br />
Float: 17,0200004577637</p>
<p>Float wird anschliessend wieder sone total brackige Zahl.</p>
<p>Einzigste Möglichkeit die ich jetzt sehen würde wäre den Float Wert einfach * 100 zu nehmen und Grenzen als Ganzzahl abzufragen. Geht es wirklich nicht anders?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183455/floatwert-beschneiden</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 23:39:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183455.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 05 Jun 2007 08:22:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Floatwert beschneiden? on Tue, 05 Jun 2007 08:22:15 GMT]]></title><description><![CDATA[<p>Kann man einen Float Wert beschneiden?</p>
<p>Ich arbeite mit einer Grafikkomponente und erhalte bei einer Position von 17.02 in &quot;Wirklichkeit&quot; laut FloatToStr = 17.02000021374849.</p>
<p>Ich möchte den Schmutz da hinten gern weg haben, damit ich richtig abfragen kann auf Grenzen. Weiss wer wie ich das hinbekomme oder hat nen Tipp?</p>
<p>Ich habe auch schon Werte gesehen die statt 10.01 dann 10.00999984897364 sind.</p>
<p>Die Werte sind erfunden, aber so ist das in der Art. Bin dadrauf gekommen, weil ich abfrage if (a&gt;17.02) ... was ja nicht sein sollte</p>
<p>Beispiel so klappt es nicht</p>
<pre><code class="language-cpp">Memo1-&gt;Lines-&gt;Clear();

    float fvalue = 17.02000012236746834;
    AnsiString tvalue = FloatToStrF(fvalue,ffFixed,10,2);
    Memo1-&gt;Lines-&gt;Add(&quot;AnsiString: &quot;+tvalue);

    fvalue = StrToFloat(tvalue);
    Memo1-&gt;Lines-&gt;Add(&quot;Float: &quot;+FloatToStr(fvalue));
</code></pre>
<p>Ergebnis:<br />
AnsiString: 17,02<br />
Float: 17,0200004577637</p>
<p>Float wird anschliessend wieder sone total brackige Zahl.</p>
<p>Einzigste Möglichkeit die ich jetzt sehen würde wäre den Float Wert einfach * 100 zu nehmen und Grenzen als Ganzzahl abzufragen. Geht es wirklich nicht anders?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299081</guid><dc:creator><![CDATA[Kulli]]></dc:creator><pubDate>Tue, 05 Jun 2007 08:22:15 GMT</pubDate></item><item><title><![CDATA[Reply to Floatwert beschneiden? on Tue, 05 Jun 2007 08:31:22 GMT]]></title><description><![CDATA[<p>Beim Vergleich reller Zahlen, egal ob sie vom Typ float, double oder long double sind, muß man deshalb immer auf Gleichheit innerhalb eines sehr kleinen Intevalles, meist epsilon genannt, prüfen, hier ein Beispiel:</p>
<pre><code class="language-cpp">float epsi;

   epsi = 10e-18; // sehr kleiner Wert

   if( abs(18.61 + 2.01 - 20.62) &lt; epsi )
      printf(&quot;Alles OK\n&quot;);
   else
      printf(&quot;Hier ist immer noch was faul\n&quot;);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1299086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299086</guid><dc:creator><![CDATA[sdfg]]></dc:creator><pubDate>Tue, 05 Jun 2007 08:31:22 GMT</pubDate></item><item><title><![CDATA[Reply to Floatwert beschneiden? on Tue, 05 Jun 2007 12:03:06 GMT]]></title><description><![CDATA[<p>Interessante Version. Danke! Werd ich mal austesten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299228</guid><dc:creator><![CDATA[Kulli]]></dc:creator><pubDate>Tue, 05 Jun 2007 12:03:06 GMT</pubDate></item></channel></rss>