<?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[Werte unter 1 und über 0]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich versuche Folgendes und erhalte überall 0, was mache ich denn bitteschön falsch?!!</p>
<p>Achja, ich verwende Dec-C++.</p>
<p>Bin für jede Hilfe sehr Dankbar <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="😃"
    /></p>
<pre><code class="language-cpp">cout &lt;&lt; 1/2 &lt;&lt; endl; // 0

float divide = 1/2;
cout &lt;&lt; divide &lt;&lt; endl; // 0

double divide_d = 1/2;
cout &lt;&lt; divide_d &lt;&lt; endl; // 0
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/255430/werte-unter-1-und-über-0</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 20:32:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/255430.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 Nov 2009 19:41:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Werte unter 1 und über 0 on Mon, 30 Nov 2009 19:41:43 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich versuche Folgendes und erhalte überall 0, was mache ich denn bitteschön falsch?!!</p>
<p>Achja, ich verwende Dec-C++.</p>
<p>Bin für jede Hilfe sehr Dankbar <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="😃"
    /></p>
<pre><code class="language-cpp">cout &lt;&lt; 1/2 &lt;&lt; endl; // 0

float divide = 1/2;
cout &lt;&lt; divide &lt;&lt; endl; // 0

double divide_d = 1/2;
cout &lt;&lt; divide_d &lt;&lt; endl; // 0
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1815581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815581</guid><dc:creator><![CDATA[0.3424]]></dc:creator><pubDate>Mon, 30 Nov 2009 19:41:43 GMT</pubDate></item><item><title><![CDATA[Reply to Werte unter 1 und über 0 on Mon, 30 Nov 2009 19:46:25 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">cout &lt;&lt; 1.0f/2 &lt;&lt; endl; // 0.5

float divide = 1.0f/2;
cout &lt;&lt; divide &lt;&lt; endl; // 0.5

double divide_d = 1.0f/2;
cout &lt;&lt; divide_d &lt;&lt; endl; // 0.5
</code></pre>
<p>Der compiler sieht die Zahlen sonst als Integer an, und rundet entsprechend ab. <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="🙄"
    /></p>
<p>Deshalb musst du (nach nicht-variablen zahlen) ein &quot;f&quot; machen , aber NIE &quot;1f&quot; sondern &quot;1.0f&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815585</guid><dc:creator><![CDATA[DarkShadow44]]></dc:creator><pubDate>Mon, 30 Nov 2009 19:46:25 GMT</pubDate></item><item><title><![CDATA[Reply to Werte unter 1 und über 0 on Mon, 30 Nov 2009 19:49:56 GMT]]></title><description><![CDATA[<p>Dankeschön <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f628.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--fearful_face"
      title="D:"
      alt="😨"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815590</guid><dc:creator><![CDATA[0.34waswarsnochgleich?]]></dc:creator><pubDate>Mon, 30 Nov 2009 19:49:56 GMT</pubDate></item><item><title><![CDATA[Reply to Werte unter 1 und über 0 on Mon, 30 Nov 2009 19:51:04 GMT]]></title><description><![CDATA[<p>Nun stellt sich mir die Frage:</p>
<p>Wie mach ich das ganze bei Variablen? :S</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815592</guid><dc:creator><![CDATA[0.34waswarsnochgleich?]]></dc:creator><pubDate>Mon, 30 Nov 2009 19:51:04 GMT</pubDate></item><item><title><![CDATA[Reply to Werte unter 1 und über 0 on Mon, 30 Nov 2009 19:53:32 GMT]]></title><description><![CDATA[<p>Habs rausgefunden, ich mach einfach:</p>
<pre><code class="language-cpp">var*1.0/var2
</code></pre>
<p>Danke nochmals <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815593</guid><dc:creator><![CDATA[0.34waswarsnochgleich?]]></dc:creator><pubDate>Mon, 30 Nov 2009 19:53:32 GMT</pubDate></item><item><title><![CDATA[Reply to Werte unter 1 und über 0 on Mon, 30 Nov 2009 19:59:37 GMT]]></title><description><![CDATA[<p>DarkShadow44 schrieb:</p>
<blockquote>
<p>Deshalb musst du (nach nicht-variablen zahlen) ein &quot;f&quot; machen , aber NIE &quot;1f&quot; sondern &quot;1.0f&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p><code>1.f</code> funktioniert auch und ich finde es persönlich schöner.</p>
<p>0.34waswarsnochgleich? schrieb:</p>
<blockquote>
<p>Habs rausgefunden, ich mach einfach [...]</p>
</blockquote>
<p>Für sowas gibt es Casts.</p>
<pre><code class="language-cpp">static_cast&lt;float&gt;(var1) / var2;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1815600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815600</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 30 Nov 2009 19:59:37 GMT</pubDate></item><item><title><![CDATA[Reply to Werte unter 1 und über 0 on Mon, 30 Nov 2009 20:01:47 GMT]]></title><description><![CDATA[<p>warum nicht</p>
<pre><code class="language-cpp">((float)var1) / var2;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1815602</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815602</guid><dc:creator><![CDATA[DarkShadow44]]></dc:creator><pubDate>Mon, 30 Nov 2009 20:01:47 GMT</pubDate></item><item><title><![CDATA[Reply to Werte unter 1 und über 0 on Mon, 30 Nov 2009 20:31:12 GMT]]></title><description><![CDATA[<p>DarkShadow44 schrieb:</p>
<blockquote>
<p>warum nicht</p>
<pre><code class="language-cpp">((float)var1) / var2;
</code></pre>
</blockquote>
<p>Das ist durchaus ein Streitfall. Man kann daran nicht mögen, dass es ein C-Style Cast ist und auch viele andere Sachen bedeuten könnte und somit anderst, als erwartet arbeiten kann. (Natürlich nicht in diesem Beispiel, aber Allgemein).<br />
Dazu kommt noch das Argument, dass man, wenn man casts sucht diesen hier kaum auf die schnelle findet, während man den <code>static_cast</code> doch realtiv gut sieht und auch gut danach suchen kann.</p>
<p>Pro Argumente für den C-Style Cast fallen mir gerade keine ein. (gibts wahrscheinlich schon, aber ich bevorzuge halt auch die C++ Variante. ;))</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815625</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 30 Nov 2009 20:31:12 GMT</pubDate></item><item><title><![CDATA[Reply to Werte unter 1 und über 0 on Mon, 30 Nov 2009 20:31:51 GMT]]></title><description><![CDATA[<p>DarkShadow44 schrieb:</p>
<blockquote>
<p>warum nicht</p>
<pre><code class="language-cpp">((float)var1) / var2;
</code></pre>
</blockquote>
<p>Ich bevorzuge die C++-Casts, weil sie sicherer sind. Der C-Cast, den du verwendest, kann fast alles casten. Er beinhaltet die Funktionalität, die in C++ in die drei Operatoren <code>static_cast</code> , <code>const_cast</code> und <code>reinterpret_cast</code> aufgeteilt wurde. Das gleiche gilt übrigens für die Casts mit Konstruktor-Syntax, also <code>float(var1)</code> .</p>
<pre><code class="language-cpp">class Base {}; // polymorph
class Derived : public Base {};

const Base* p = ...;

// C-Cast umgeht Typsicherheit total, indem const weggecastet
// und der Zeigertyp gewaltsam umgebogen wird.
double** q = (double**) p; 

// C++-Cast: Ich sehe gleich: möglicherweise gefährliche Bitfrickelei.
const double** r = reinterpret_cast&lt;const double**&gt;(p);

// C++-Cast: Ich sehe gleich: Es wird ein CV-Qualifizierer entfernt.
Base* s = const_cast&lt;Base*&gt;(p);

// C++-Cast: Ich sehe gleich: Es erfolgt ein laufzeitgeprüfter Downcast.
const Derived* t = dynamic_cast&lt;const Derived*&gt;(p);

// C++-Cast: Ich sehe gleich: Eine statische Umwandlung kompatibler Typen wird 
// durchgeführt. Darüber, dass p hier tatsächlich auf ein Derived zeigt, bin ich
// mir als Benutzer von static_cast im Gegensatz zu dynamic_cast im Klaren.
const Derived* u = static_cast&lt;const Derived*&gt;(p);
</code></pre>
<p>Einige Leute sind der Ansicht, das wäre unnötig. Ich finde Typsicherheit jedoch was Tolles und bin froh, dass</p>
<ul>
<li>auf diese Weise viele Fehler zur Kompilierzeit abgefangen werden</li>
<li>man anhand des Operatoren gleich sieht, auf welche Weise eine Typumwandlung erfolgt</li>
<li>ich nicht inkonsistent sein muss, indem ich je nach Laune C- mit C++-Casts mische</li>
</ul>
<p>Du denkst vielleicht, beim <code>float</code> hier spielt es keine Rolle, da nicht wirklich was schiefgehen kann. Aber wo setzt man die Grenze? Es kann sehr schnell zu ungewollten Umwandlungen kommen, besonders im Zusammenhang mit Techniken wie Templates, Laufzeitpolymorphie oder Überladung, die von Typen abstrahieren. Das meine ich auch mit Konsistenz: Ich verwende durchgehend C++-Casts, damit ich nicht abwägen muss, wo eine Umwandlung harmlos genug für C-Casts ist, und damit ich auch auf Eventualitäten wie Refactoring mit minimaler Typänderung gerüstet bin.</p>
<p>Viele Leute stören sich ausserdem an der Länge der Schlüsselwörter. Ich zum Beispiel mag aber deren Aussagekraft. Im Idealfall sollten im Anwendungscode sowieso relativ wenige Casts vorkommen; diese können nach Möglichkeit in Funktionen ausgelagert werden. Oft ist dann durch den Funktionsnamen nochmals klarer, was getan wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1815626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1815626</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 30 Nov 2009 20:31:51 GMT</pubDate></item></channel></rss>