<?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[Auf inf überprüfen]]></title><description><![CDATA[<p>Wie kann ich überprüfen ob eine Zahl infinity ist?</p>
<p>Sowas hier geht nicht:</p>
<pre><code class="language-cpp">if( a = inf ) { blablabla }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/270566/auf-inf-überprüfen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 30 Aug 2026 04:43:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/270566.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Jul 2010 14:47:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Auf inf überprüfen on Wed, 14 Jul 2010 14:47:41 GMT]]></title><description><![CDATA[<p>Wie kann ich überprüfen ob eine Zahl infinity ist?</p>
<p>Sowas hier geht nicht:</p>
<pre><code class="language-cpp">if( a = inf ) { blablabla }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1926252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1926252</guid><dc:creator><![CDATA[HändyÄndy]]></dc:creator><pubDate>Wed, 14 Jul 2010 14:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to Auf inf überprüfen on Wed, 14 Jul 2010 15:06:39 GMT]]></title><description><![CDATA[<p>es gibt (u.a.) 2 Makros in der cmath:</p>
<p>INFINITY<br />
und<br />
NAN</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1926265</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1926265</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 14 Jul 2010 15:06:39 GMT</pubDate></item><item><title><![CDATA[Reply to Auf inf überprüfen on Wed, 14 Jul 2010 15:07:08 GMT]]></title><description><![CDATA[<p>HändyÄndy schrieb:</p>
<blockquote>
<pre><code class="language-cpp">if( a = inf ) { blablabla }
</code></pre>
</blockquote>
<p>Das ist ja auch eine Zuweisung...</p>
<p>Ehrlich gesagt: Ich habe keine Ahnung...</p>
<p>Ich spar mir jetzt mal den 'let me google that for you'-Link</p>
<p>Es gibt wohl in</p>
<pre><code class="language-cpp">#include&lt;limits&gt;
if(std::isinf(myValue)){}
</code></pre>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1926267</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1926267</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 14 Jul 2010 15:07:08 GMT</pubDate></item><item><title><![CDATA[Reply to Auf inf überprüfen on Wed, 14 Jul 2010 15:10:10 GMT]]></title><description><![CDATA[<p>Falls du einen C++ Compiler hast, der auch die Erweiterungen von C99 unterstützt (das tun eigentlich fast alle, außer wenn man sie per Schalter zum strengen Einhalten des Standards zwingt), dann kannst du isinf() aus math.h benutzen. Dazu passt dann auch isnan() zur Prüfung auf NaN.</p>
<p>edit: <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16305">@unskilled</a>: Man kann aber mit NAN nicht auf Gleichheit prüfen. Und bei INFINITY bin ich mir da auch nicht so sicher, müsste man mal nachlesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1926268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1926268</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 14 Jul 2010 15:10:10 GMT</pubDate></item><item><title><![CDATA[Reply to Auf inf überprüfen on Wed, 14 Jul 2010 15:10:58 GMT]]></title><description><![CDATA[<p>zur not gibts aber in numeric_limits auch wirklich was für C++:</p>
<pre><code class="language-cpp">static const bool has_infinity = false;
  static const bool has_quiet_NaN = false;
  static const bool has_signaling_NaN = false;
/*...*/
  static T infinity() throw();
  static T quiet_NaN() throw();
  static T signalign_NaN() throw();
</code></pre>
<p>ich hab zwar keinen plan, was der unterschied zwischen quiet_nan und signaling_nan ist, aber ok... ^^</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1926270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1926270</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 14 Jul 2010 15:10:58 GMT</pubDate></item><item><title><![CDATA[Reply to Auf inf überprüfen on Wed, 14 Jul 2010 15:24:18 GMT]]></title><description><![CDATA[<p>unskilled schrieb:</p>
<blockquote>
<p>zur not gibts aber in numeric_limits auch wirklich was für C++:</p>
<pre><code class="language-cpp">static const bool has_infinity = false;
  static const bool has_quiet_NaN = false;
  static const bool has_signaling_NaN = false;
/*...*/
  static T infinity() throw();
  static T quiet_NaN() throw();
  static T signalign_NaN() throw();
</code></pre>
<p>ich hab zwar keinen plan, was der unterschied zwischen quiet_nan und signaling_nan ist, aber ok... ^^</p>
<p>bb</p>
</blockquote>
<p>Aber was nützt das? Damit kann man doch nur feststellen was der Typ so kann, aber man kann nicht prüfen ob eine variable von diesem Typ diesen Wert hat. Denn nan != nan.</p>
<p>Der Unterschied zwischen quiet_NaN und signaling_NaN ist, ist dass ein signaling_NaN eine Exception wirft wenn man bestimmte Sachen damit macht, während ein quiet_nan einfach durchgereicht wird. Ich wüsste aber keinen Fall, wo signaling_nans tatsächlich vorkommen würden, auch wenn die Idee ganz nett ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1926276</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1926276</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 14 Jul 2010 15:24:18 GMT</pubDate></item><item><title><![CDATA[Reply to Auf inf überprüfen on Thu, 15 Jul 2010 01:11:29 GMT]]></title><description><![CDATA[<p>y, es ging aber hier nur um infinity, richtig!? : P</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
bool is_infinity(const T&amp; to_proof, bool only_positive = false)
{
  if(!std::numeric_limits&lt;T&gt;::has_infinity())
    return false;

  if(to_proof == std::numeric_limits&lt;T&gt;::infinity())
    return true;

  if(only_positive)
    return false;

  return to_proof == -std::numeric_limits&lt;T&gt;::infinity();
}
</code></pre>
<p>bb</p>
<p>edit: wenn es nur einen NaN-Zustand gäbe, könnte man ja mit memcmp was anstellen - das ist das ja aber nicht der Fall..<br />
allerdings kann man das ==-op verhalten ja auch ausnutzen:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
bool is_nan(const T&amp; test_me)
{
  if(!std::numeric_limits&lt;T&gt;::has_quiet_NaN())
    return false;

  return test_me != test_me;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1926423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1926423</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 15 Jul 2010 01:11:29 GMT</pubDate></item></channel></rss>