<?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[Überlauf bei double ?]]></title><description><![CDATA[<p>hallo liebe coder,</p>
<p>ikch caste mit folgendem code n long auf ein double...</p>
<pre><code class="language-cpp">double s = ((double) ptpol.GetValS()) ;
</code></pre>
<p>jedoch bekomme ich bei einem gespeicherten long wert von 116523<br />
einen überlauf... kann double nicht grössere werte aufnehmen... ??</p>
<p>danke im vor raus...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200390/überlauf-bei-double</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 09:16:23 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200390.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 14 Dec 2007 09:35:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 09:35:38 GMT]]></title><description><![CDATA[<p>hallo liebe coder,</p>
<p>ikch caste mit folgendem code n long auf ein double...</p>
<pre><code class="language-cpp">double s = ((double) ptpol.GetValS()) ;
</code></pre>
<p>jedoch bekomme ich bei einem gespeicherten long wert von 116523<br />
einen überlauf... kann double nicht grössere werte aufnehmen... ??</p>
<p>danke im vor raus...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420363</guid><dc:creator><![CDATA[x-coder44]]></dc:creator><pubDate>Fri, 14 Dec 2007 09:35:38 GMT</pubDate></item><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 09:38:31 GMT]]></title><description><![CDATA[<p>habe gerad nochmal das ganze überprüft....</p>
<p>in der initialisierung eines doubles mit dem besagten wert innheralb der eigenen klasse klappt es...</p>
<p>jedoch nicht, wenn ich den long wert einer anderen klasse in meine importieren will...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420365</guid><dc:creator><![CDATA[x-coder44]]></dc:creator><pubDate>Fri, 14 Dec 2007 09:38:31 GMT</pubDate></item><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 09:38:57 GMT]]></title><description><![CDATA[<p>Was meinst du mit &quot;Überlauf&quot;? double kann eigentlich Werte bis 10<sup>308</sup> aufnehmen, da sollte eine 116523 eigentlich keine Probleme verursachen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420366</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420366</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 14 Dec 2007 09:38:57 GMT</pubDate></item><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 09:42:54 GMT]]></title><description><![CDATA[<p>und benutz keine C casts - ist ja grausig</p>
<p>wenn du ne ueberpruefung einbauen willst wuerd ich vorschlagen die funktion GetValS() zu ueberladen</p>
<p>void GetValS(double &amp;var);<br />
void GetValS(long &amp;var);<br />
void GetValS(int &amp;var);</p>
<p>spaeter brauchst du dich dann darum nicht mehr kuemmern</p>
<p>double s = 0;<br />
ptpol.GetValS(s);</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420370</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Fri, 14 Dec 2007 09:42:54 GMT</pubDate></item><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 09:43:30 GMT]]></title><description><![CDATA[<p>ich bekomme aber bei einem long-wert von 116523<br />
einen double-wert von -14.55....... !?</p>
<p>siehe codezeile oben...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420371</guid><dc:creator><![CDATA[x-coder44]]></dc:creator><pubDate>Fri, 14 Dec 2007 09:43:30 GMT</pubDate></item><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 09:47:21 GMT]]></title><description><![CDATA[<p>nene..... moment mal.... GetValS holt mir lediglich einen wert....</p>
<pre><code class="language-cpp">double s = ((double) ptpol.GetValS()) / ptpol.NachKomma() ;
</code></pre>
<p>und GetValS() ist</p>
<pre><code class="language-cpp">long CPoint3DPolar::GetValS ( void ) { return m_s ;} ;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1420375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420375</guid><dc:creator><![CDATA[x-coder44]]></dc:creator><pubDate>Fri, 14 Dec 2007 09:47:21 GMT</pubDate></item><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 09:51:07 GMT]]></title><description><![CDATA[<p>x-coder44 schrieb:</p>
<blockquote>
<p>ich bekomme aber bei einem long-wert von 116523<br />
einen double-wert von -14.55....... !?</p>
<p>siehe codezeile oben...</p>
</blockquote>
<p>Bist du dir sicher, daß du nicht vergessen hast, den Wert zu initialisieren? Da solltest du lieber nachsehen, was WIRKLICH zurückgegeben wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420378</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 14 Dec 2007 09:51:07 GMT</pubDate></item><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 09:55:27 GMT]]></title><description><![CDATA[<p>war nur ein vorschlag<br />
was ich grad seh<br />
du castet den wert {immernoch C - grr} auf double und dann / nachkomma ?<br />
da liegt evtl das problem</p>
<p>probier das mal:</p>
<pre><code class="language-cpp">// vorher
double s = ((double) ptpol.GetValS()) / ptpol.NachKomma() ;

// nachher
double dNewValue = static_cast&lt;double&gt;(ptpol.GetValS() / ptpol.NachKomma());
</code></pre>
<p>stichwort: &quot;C++ statt C&quot; sowie &quot;<a href="http://de.wikipedia.org/wiki/Ungarische_Notation" rel="nofollow">Ungarische Notation</a>&quot;</p>
<p>und mit dem debugger die variablen verfolgt hast du anscheinend auch nicht (zb das du den long erstmal nur so holst und anschaust was da kommt bevor du was castest)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420382</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Fri, 14 Dec 2007 09:55:27 GMT</pubDate></item><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 09:59:24 GMT]]></title><description><![CDATA[<p>bei deinem code fallen bei mir auch noch die nachkommastellen weg....<br />
wo könnt denn da der fehler liegen ?</p>
<p>das mit dem &quot;ersteinmal nicht casten und schauen was passiert&quot; mach ich mal...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420386</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420386</guid><dc:creator><![CDATA[x-coder44]]></dc:creator><pubDate>Fri, 14 Dec 2007 09:59:24 GMT</pubDate></item><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 10:01:20 GMT]]></title><description><![CDATA[<p>aber vorher - schau doch erstmal per debugger nach was du von der funktion zurueck bekommst, dann was passiert wenn du es / nachkomma teilst, und dann schau was nach dem cast los ist<br />
drauf rumprobieren {try &amp; error} hilft nur im augenblick, aber bring meist keine erkenntnis</p>
<p>darum<br />
debugger an und schaun<br />
los #schick #gg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420390</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Fri, 14 Dec 2007 10:01:20 GMT</pubDate></item><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 10:04:16 GMT]]></title><description><![CDATA[<p>hab was interessantes gefunden:</p>
<p>bei meinem geänderten code:</p>
<pre><code class="language-cpp">long s = ptpol.GetValS();
</code></pre>
<p>ergab sich das hier...</p>
<p>Name Wert Typ<br />
---- ---- ---<br />
s -14550 __int32</p>
<p>es handelt sich doch hier um einen überlauf, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420394</guid><dc:creator><![CDATA[x-coder44]]></dc:creator><pubDate>Fri, 14 Dec 2007 10:04:16 GMT</pubDate></item><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 10:09:08 GMT]]></title><description><![CDATA[<p>Wo hast du denn einen Wert in deine long-Variable reingepackt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420398</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 14 Dec 2007 10:09:08 GMT</pubDate></item><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 10:22:23 GMT]]></title><description><![CDATA[<p>also ich habe eine membervariable einer klasse m_s und benutze Bitfelder...</p>
<pre><code class="language-cpp">class CPoint3DPolar
{
private:
// Die Parameter
unsigned long	m_a :22;		//22 Bit a ( Winkel: Alpha )
unsigned long	m_b :22;		//22 Bit b ( Winkel: Beta  )
long			m_s :17;	//17 Bit S ( Entfernung    )
... ... ...
</code></pre>
<p>der errechnete wert von m_s = 116523 wird richtig gespeichert...</p>
<p>im Arbeitsspeicher:<br />
0x0012F05C 2a c7 0b (wird aber dank des feldes als 1C7A2 erkannt)</p>
<p>mit meiner methode:<br />
[/cpp]long CPoint3DPolar::GetValS ( void ) { return m_s ;} ;</p>
<pre><code class="language-cpp">rufe ich in der anderen klasse diese variable auf, da sich ja beide klassen kennen...

in meiner anderen klasse dann erfolgt der aufruf der mehtode:
</code></pre>
<p>long s = ptpol.GetValS();[cpp]</p>
<p>nun sehe ich zur meiner schande im arbeitsspeicher für long s:<br />
0x0012F014 2a c7 ff ff</p>
<p>der liest also alle vier byte aus... ohoh</p>
<p>aber warum klappt es dann bei kleineren werten ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420403</guid><dc:creator><![CDATA[x-coder44]]></dc:creator><pubDate>Fri, 14 Dec 2007 10:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to Überlauf bei double ? on Fri, 14 Dec 2007 10:31:42 GMT]]></title><description><![CDATA[<p>Das höchstwertige Bit bei deinem Bitfeld (in deinem Beispiel ist das Bit 16) ist das Vorzeichen - und dein 116523 ist 0x<strong>1</strong>C72B und das ist ein negativer Wert.</p>
<p>(sprich: Ja, du hast einen Überlauf - allerdings nicht im double, sondern in deinem Bitfeld)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420409</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 14 Dec 2007 10:31:42 GMT</pubDate></item></channel></rss>