<?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[Genauigkeit von Double - e auf x Stellen genau]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Wir haben in Mathe die Aufgabe bekommen, die Eulersche Zahl zu berechnen mit Excel <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <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="😃"
    /> auf mindestens 3 Stellen, und schauen wie gross n ist.<br />
<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>a</mi><mrow><mi>n</mi></mrow></msub><mo>=</mo><mo>(</mo><mn>1</mn><mo>+</mo><mfrac><mrow><mn>1</mn></mrow><mrow><mi>n</mi></mrow></mfrac><msup><mo>)</mo><mi>n</mi></msup></mrow><annotation encoding="application/x-tex">a_{n}=(1+\frac{1}{n})^n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.845108em;"></span><span class="strut bottom" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">n</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mopen">(</span><span class="mord mathrm">1</span><span class="mbin">+</span><span class="mord reset-textstyle textstyle uncramped"><span class="sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span><span class="mfrac"><span class="vlist"><span style="top:0.345em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">n</span></span></span></span><span style="top:-0.22999999999999998em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle uncramped frac-line"></span></span><span style="top:-0.394em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord scriptstyle uncramped"><span class="mord mathrm">1</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span></span><span class="mclose"><span class="mclose">)</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord mathit">n</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span><br />
Da mir das zu leicht und zu blöd war hab ich nun ein C++ Progrämmchen geschrieben um mehr Stellen zu bekommen, aber irgendwie ist bei 15 Nachkommastellen schluss. Ist das so? Was gibt es für Datentypen, die genauer sind?</p>
<p>Hier mal mein Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;sstream&gt;
#include &lt;iomanip&gt;
#include &lt;string&gt;
#include &lt;cmath&gt;

using namespace std;

//Gefunden im C++ Forum :)
int read_int_from_cin( std::string const &amp;prompt ) {
    string entered;
    stringstream sstr;
    int ret;
    do {
        sstr.clear();
        cout &lt;&lt; prompt &lt;&lt; flush;
        getline( cin, entered );
        sstr.str( entered );
        sstr &gt;&gt; ret;
    } while( !sstr );
    return ret;
}

int main(int argc, char *argv[])
{
    int n = read_int_from_cin( &quot;Enter n: &quot; );
    cout.precision(20);
    cout.setf( ios::fixed, ios::floatfield );
    double e = 0;
    for( int i = 1;
        ( e &lt; 2.718281828459045235360 
        || e &gt;= 2.718281828459045235361 ) // Stoppe, wenn Ergebniss genau genug
        /*i &lt;= n*/; // War: Stoppe, wenn n mal gerechnet
        ++i )
    {
        e = pow( ( 1.0 + pow( i, -1.0 ) ), i ); // Die Formel
        n = i;
    }
    cout &lt;&lt; &quot;n=&quot; &lt;&lt; setw(6) &lt;&lt; n &lt;&lt; &quot; e=&quot; &lt;&lt; e &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Und zweitens wollt ich gern prüfen, bei welchem n jede Nachkomma-Stelle richtig ist. Hab aber keine Idee das zu tun, ausser mit x-mal if Abfragen ala</p>
<pre><code class="language-cpp">if( e &gt;= 2.71 &amp;&amp; e &lt; 2.72 )
    gebe aus: 2te Stelle erreicht in n Zyklen
if( e &gt;= 2.718 &amp;&amp; e &lt; 2.719 )
    gebe aus: 3te Stelle erreicht in n Zyklen
</code></pre>
<p>Vielen Dank schonmal im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164556/genauigkeit-von-double-e-auf-x-stellen-genau</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 22:40:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164556.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 09 Nov 2006 17:11:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Genauigkeit von Double - e auf x Stellen genau on Thu, 09 Nov 2006 17:11:18 GMT]]></title><description><![CDATA[<p>Hallo zusammen</p>
<p>Wir haben in Mathe die Aufgabe bekommen, die Eulersche Zahl zu berechnen mit Excel <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> <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="😃"
    /> auf mindestens 3 Stellen, und schauen wie gross n ist.<br />
<span class="katex"><span class="katex-mathml"><math><semantics><mrow><msub><mi>a</mi><mrow><mi>n</mi></mrow></msub><mo>=</mo><mo>(</mo><mn>1</mn><mo>+</mo><mfrac><mrow><mn>1</mn></mrow><mrow><mi>n</mi></mrow></mfrac><msup><mo>)</mo><mi>n</mi></msup></mrow><annotation encoding="application/x-tex">a_{n}=(1+\frac{1}{n})^n</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.845108em;"></span><span class="strut bottom" style="height:1.190108em;vertical-align:-0.345em;"></span><span class="base textstyle uncramped"><span class="mord"><span class="mord mathit">a</span><span class="vlist"><span style="top:0.15em;margin-right:0.05em;margin-left:0em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">n</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="mrel">=</span><span class="mopen">(</span><span class="mord mathrm">1</span><span class="mbin">+</span><span class="mord reset-textstyle textstyle uncramped"><span class="sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span><span class="mfrac"><span class="vlist"><span style="top:0.345em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle cramped"><span class="mord scriptstyle cramped"><span class="mord mathit">n</span></span></span></span><span style="top:-0.22999999999999998em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle textstyle uncramped frac-line"></span></span><span style="top:-0.394em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord scriptstyle uncramped"><span class="mord mathrm">1</span></span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span><span class="sizing reset-size5 size5 reset-textstyle textstyle uncramped nulldelimiter"></span></span><span class="mclose"><span class="mclose">)</span><span class="vlist"><span style="top:-0.363em;margin-right:0.05em;"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span><span class="reset-textstyle scriptstyle uncramped"><span class="mord mathit">n</span></span></span><span class="baseline-fix"><span class="fontsize-ensurer reset-size5 size5"><span style="font-size:0em;">​</span></span>​</span></span></span></span></span></span><br />
Da mir das zu leicht und zu blöd war hab ich nun ein C++ Progrämmchen geschrieben um mehr Stellen zu bekommen, aber irgendwie ist bei 15 Nachkommastellen schluss. Ist das so? Was gibt es für Datentypen, die genauer sind?</p>
<p>Hier mal mein Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;sstream&gt;
#include &lt;iomanip&gt;
#include &lt;string&gt;
#include &lt;cmath&gt;

using namespace std;

//Gefunden im C++ Forum :)
int read_int_from_cin( std::string const &amp;prompt ) {
    string entered;
    stringstream sstr;
    int ret;
    do {
        sstr.clear();
        cout &lt;&lt; prompt &lt;&lt; flush;
        getline( cin, entered );
        sstr.str( entered );
        sstr &gt;&gt; ret;
    } while( !sstr );
    return ret;
}

int main(int argc, char *argv[])
{
    int n = read_int_from_cin( &quot;Enter n: &quot; );
    cout.precision(20);
    cout.setf( ios::fixed, ios::floatfield );
    double e = 0;
    for( int i = 1;
        ( e &lt; 2.718281828459045235360 
        || e &gt;= 2.718281828459045235361 ) // Stoppe, wenn Ergebniss genau genug
        /*i &lt;= n*/; // War: Stoppe, wenn n mal gerechnet
        ++i )
    {
        e = pow( ( 1.0 + pow( i, -1.0 ) ), i ); // Die Formel
        n = i;
    }
    cout &lt;&lt; &quot;n=&quot; &lt;&lt; setw(6) &lt;&lt; n &lt;&lt; &quot; e=&quot; &lt;&lt; e &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Und zweitens wollt ich gern prüfen, bei welchem n jede Nachkomma-Stelle richtig ist. Hab aber keine Idee das zu tun, ausser mit x-mal if Abfragen ala</p>
<pre><code class="language-cpp">if( e &gt;= 2.71 &amp;&amp; e &lt; 2.72 )
    gebe aus: 2te Stelle erreicht in n Zyklen
if( e &gt;= 2.718 &amp;&amp; e &lt; 2.719 )
    gebe aus: 3te Stelle erreicht in n Zyklen
</code></pre>
<p>Vielen Dank schonmal im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171815</guid><dc:creator><![CDATA[Simon&amp;amp;Simon]]></dc:creator><pubDate>Thu, 09 Nov 2006 17:11:18 GMT</pubDate></item><item><title><![CDATA[Reply to Genauigkeit von Double - e auf x Stellen genau on Thu, 09 Nov 2006 17:46:36 GMT]]></title><description><![CDATA[<p>Simon&amp;Simon schrieb:</p>
<blockquote>
<p>Da mir das zu leicht und zu blöd war hab ich nun ein C++ Progrämmchen geschrieben um mehr Stellen zu bekommen, aber irgendwie ist bei 15 Nachkommastellen schluss. Ist das so?</p>
</blockquote>
<p>Ja, afaik hat double (in etwa?) 15 signifikante Nachkommastellen.</p>
<p>Simon&amp;Simon schrieb:</p>
<blockquote>
<p>Was gibt es für Datentypen, die genauer sind?</p>
</blockquote>
<p>Im C++-Standard keine, aber es gibt verschiedene Mathe-Bibliotheken, die sicher auch genauere Fließkommazahlen haben. Ein Beispiel für eine solche Bibliothek kann ich dir jetzt allerdings nicht nennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1171829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1171829</guid><dc:creator><![CDATA[Der Meister]]></dc:creator><pubDate>Thu, 09 Nov 2006 17:46:36 GMT</pubDate></item></channel></rss>