<?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[Datentypenkonvertierung- zum verrückt werden ;-)]]></title><description><![CDATA[<p>Hey Leute,<br />
Also ich habe hier ein ziemlich dämliches Problem und frage mich schon langsam, wer jetzt der Dümmere ist... der PC oder ich selbst xD.<br />
Und zwar habe ich hier einfach mal ein kleines Beispielprogramm zu meinem Fehler geschrieben:</p>
<pre><code>String hallo = &quot;123456789&quot;;
    float h=0;
    h=StrToFloat(hallo);
    Button1-&gt;Caption = FloatToStr(h);
</code></pre>
<p>Im String &quot;hallo&quot; wird die lange Zahl 123456789 gespeichert.<br />
Dann wird diese Zahl mit StrToFloat in der Floatvariable &quot;h&quot; gespeichert.<br />
Diese wird anschließend auf dem Button ausgegeben.<br />
Und was ist das Ergebnis?</p>
<p><a href="http://Jesusfreak777.je.funpic.de/button.JPG" rel="nofollow">http://Jesusfreak777.je.funpic.de/button.JPG</a></p>
<p>Total falsch <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>cya<br />
David<br />
*</p>
<p>edit: Mit &quot;double&quot; funktioniert jetzt alles perfekt- dennoch müsste es auch noch mit float funktionierenk, da auch meine eingegebene zu konvertierende Zahl float noch nicht übersteigt.*</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/173583/datentypenkonvertierung-zum-verrückt-werden</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 14:10:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/173583.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 17 Feb 2007 13:15:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Datentypenkonvertierung- zum verrückt werden ;-) on Sat, 17 Feb 2007 13:30:02 GMT]]></title><description><![CDATA[<p>Hey Leute,<br />
Also ich habe hier ein ziemlich dämliches Problem und frage mich schon langsam, wer jetzt der Dümmere ist... der PC oder ich selbst xD.<br />
Und zwar habe ich hier einfach mal ein kleines Beispielprogramm zu meinem Fehler geschrieben:</p>
<pre><code>String hallo = &quot;123456789&quot;;
    float h=0;
    h=StrToFloat(hallo);
    Button1-&gt;Caption = FloatToStr(h);
</code></pre>
<p>Im String &quot;hallo&quot; wird die lange Zahl 123456789 gespeichert.<br />
Dann wird diese Zahl mit StrToFloat in der Floatvariable &quot;h&quot; gespeichert.<br />
Diese wird anschließend auf dem Button ausgegeben.<br />
Und was ist das Ergebnis?</p>
<p><a href="http://Jesusfreak777.je.funpic.de/button.JPG" rel="nofollow">http://Jesusfreak777.je.funpic.de/button.JPG</a></p>
<p>Total falsch <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>cya<br />
David<br />
*</p>
<p>edit: Mit &quot;double&quot; funktioniert jetzt alles perfekt- dennoch müsste es auch noch mit float funktionierenk, da auch meine eingegebene zu konvertierende Zahl float noch nicht übersteigt.*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1230071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1230071</guid><dc:creator><![CDATA[777]]></dc:creator><pubDate>Sat, 17 Feb 2007 13:30:02 GMT</pubDate></item><item><title><![CDATA[Reply to Datentypenkonvertierung- zum verrückt werden ;-) on Sat, 17 Feb 2007 13:38:53 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>das ist nicht weiter verwunderlich, denn float ist nun mal kein 100% genaues Datenformat. Das es mit double klappt ist auch nachvollziehbar. Das ist auch nicht VCL- oder Builder abhängig, sondern auch mit dem MinGW und Standard-Mitteln so</p>
<pre><code class="language-cpp">std::stringstream std;
  std &lt;&lt; &quot;123456789&quot;;
  float f;
  std &gt;&gt; f;
  std.clear();
  std &lt;&lt; &quot;123456789&quot;;
  double d;
  std &gt;&gt; d;
  std::cout.precision(10);
  std::cout &lt;&lt; f &lt;&lt; &quot; &quot; &lt;&lt; d &lt;&lt; std::endl;
</code></pre>
<p>Genaugenommen verwenden ja alle normalen Floating-Point-Implementation die Prozessor-eigene FPU, so das auch die gleichen Ergebnisse zu erwarten sind.</p>
<p>In Gegensatz zu int hat allerdings float nicht nur einen Wertebereich, sondern auch eine Genauigkeit. Deine Zahl übertrift zwar nicht den Wertebereich, aber überfordert die Genauigkeit des float-Datentypes, nicht aber die des double. Deshalb dürfen auf Gleitkommazahlen auch niemals direkte Verlgeiche gemacht werden, sondern nur Epsilon-Betrachtungen.</p>
<pre><code class="language-cpp">float zahl = ...; /Berechnung
// Falsch, float sind äußerst unwahrscheinlich 0, es sei denn es wird direkt zugewiesen
if (zahl == 0) 
{
}
// Richtige Epsilon-Betrachtung, bei einer Genauigkeit von 3 Nachkommastellen
if (zahl &lt; 0.001 &amp;&amp; zahl &gt; -0.001) 
{
}
</code></pre>
<p>Wenn du mit korrekten Dezimalzahlen rechnen willst, must du entweder int/long... nehmen, oder wenn diese nicht mehr ausreichen dann selber eine Dezimal-Klasse schrieben bzw. eine externe wie die in der GMP-Library benutzen.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1230086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1230086</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Sat, 17 Feb 2007 13:38:53 GMT</pubDate></item><item><title><![CDATA[Reply to Datentypenkonvertierung- zum verrückt werden ;-) on Sat, 17 Feb 2007 13:53:14 GMT]]></title><description><![CDATA[<p>Okay- vielen Dank für die nette Erklärung- dann werde ich wohl vorerst mit double arbeiten müssen... <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1230103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1230103</guid><dc:creator><![CDATA[777]]></dc:creator><pubDate>Sat, 17 Feb 2007 13:53:14 GMT</pubDate></item></channel></rss>