<?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[If Abfrage mit float will nicht so recht]]></title><description><![CDATA[<p>Hallo,<br />
erst mal, ich programmiere noch nicht lange C++ also die Antworten bitte so das ich Sie auch verstehe <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="😉"
    /> ganz primitiv muss es aber nicht sein da ich schon viel Erfahrung mit anderen Sprachen habe.</p>
<p>Nun aber zum Problem:</p>
<p>Ich habe folgenden Code</p>
<pre><code class="language-cpp">if(preis &lt; 1) {
preisfaktor = 1; }

if(preis &gt;= 1 &amp;&amp; preis &lt; 1.3) {
preisfaktor = 0.8; }

if(preis &gt;= 1.3 &amp;&amp; preis &lt; 1.6) {
preisfaktor = 0.7; }

if(preis &gt;= 1.6 &amp;&amp; preis &lt; 1.9) {
preisfaktor = 0.5; }

if(preis &gt;= 1.9 &amp;&amp; preis &lt; 3.5) {
preisfaktor = 0.15; }

if(preis &gt;= 3.5) {
preisfaktor = 0; }
</code></pre>
<p>preis und preisfaktor sind beides Floatvriablen. Ich glaube der Sinn sollte auch klar sein, es geht hier um eine Miniwirtschaftssimulation, d.h. je höher der Preis desto kleiner die Anzahl der Verkauften Produkte. Z.B. verkauft = anzahl * preisfaktor.</p>
<p>Leider kommt am Ende aber als Preisfaktor immer 1 raus, nur bei 1.9 kommt 0 raus. Wo steckt denn da mein Fehler?</p>
<p>Vielen vielen Dank schon mal!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163949/if-abfrage-mit-float-will-nicht-so-recht</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 12:37:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163949.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Nov 2006 12:02:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 12:02:02 GMT]]></title><description><![CDATA[<p>Hallo,<br />
erst mal, ich programmiere noch nicht lange C++ also die Antworten bitte so das ich Sie auch verstehe <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="😉"
    /> ganz primitiv muss es aber nicht sein da ich schon viel Erfahrung mit anderen Sprachen habe.</p>
<p>Nun aber zum Problem:</p>
<p>Ich habe folgenden Code</p>
<pre><code class="language-cpp">if(preis &lt; 1) {
preisfaktor = 1; }

if(preis &gt;= 1 &amp;&amp; preis &lt; 1.3) {
preisfaktor = 0.8; }

if(preis &gt;= 1.3 &amp;&amp; preis &lt; 1.6) {
preisfaktor = 0.7; }

if(preis &gt;= 1.6 &amp;&amp; preis &lt; 1.9) {
preisfaktor = 0.5; }

if(preis &gt;= 1.9 &amp;&amp; preis &lt; 3.5) {
preisfaktor = 0.15; }

if(preis &gt;= 3.5) {
preisfaktor = 0; }
</code></pre>
<p>preis und preisfaktor sind beides Floatvriablen. Ich glaube der Sinn sollte auch klar sein, es geht hier um eine Miniwirtschaftssimulation, d.h. je höher der Preis desto kleiner die Anzahl der Verkauften Produkte. Z.B. verkauft = anzahl * preisfaktor.</p>
<p>Leider kommt am Ende aber als Preisfaktor immer 1 raus, nur bei 1.9 kommt 0 raus. Wo steckt denn da mein Fehler?</p>
<p>Vielen vielen Dank schon mal!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167626</guid><dc:creator><![CDATA[chazzz]]></dc:creator><pubDate>Fri, 03 Nov 2006 12:02:02 GMT</pubDate></item><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 12:12:00 GMT]]></title><description><![CDATA[<p>Float-Vergleiche sind idR nicht besonders exakt - gerade wenn du mit double-Literalen hantierst. Vielleicht klappt es ja mit einer if-else-Kaskade:</p>
<pre><code class="language-cpp">if(preis&lt;1)
  preisfakter = 1;
else if(preis&lt;1.3)
  preisfaktor = 0.8;
...
</code></pre>
<p>Ansonsten könnte es noch helfen, den Code mal mit 'nem Debugger durchzulaufen - dann siehst du, was dein Programm wirklich macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167630</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Nov 2006 12:12:00 GMT</pubDate></item><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 12:24:31 GMT]]></title><description><![CDATA[<p>Klappt mit else if leider auch nicht. D.h. also von der Syntax her wären die Abfragen richtig. Beim kompilieren meckert der Debugger nicht rum, ansonsten habe ich leider keine Ahnung wie man das mit dem Debugger extra macht, benutze den Borland C++ Builder 5.</p>
<p>Gibt es denn eine andere Lösung bzw andere Datentypen mit denen das genauer wird?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167636</guid><dc:creator><![CDATA[chazzz]]></dc:creator><pubDate>Fri, 03 Nov 2006 12:24:31 GMT</pubDate></item><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 12:36:24 GMT]]></title><description><![CDATA[<p>chazzz schrieb:</p>
<blockquote>
<p>Beim kompilieren meckert der Debugger nicht rum, ansonsten habe ich leider keine Ahnung wie man das mit dem Debugger extra macht, benutze den Borland C++ Builder 5.</p>
</blockquote>
<p>Beim Compilieren hat der Debugger auch noch nichts zu sagen <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="😉"
    /> (und wo du bei Borland in den Debugger kommst, bin ich mir nicht sicher - kannst du einen Breakpoint auf das erste if() setzen und danach verfolgen, was mit deinen Variablen passiert)</p>
<p>Im Ernsfall hilft noch &quot;Hardcore-Debugging&quot; - du packst in die einzelnen if-Zweige eine Testausgabe ala <code>clog&lt;&lt;Wahl x: p=&quot;&lt;&lt;preis&lt;&lt;&quot; f=&quot;&lt;&lt;preisfaktor&lt;&lt;endl;</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167651</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167651</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Nov 2006 12:36:24 GMT</pubDate></item><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 12:38:04 GMT]]></title><description><![CDATA[<p>Bezüglich Debugging beim BCB<br />
<a href="http://www.junix.ch/bcb/help/debug.html" rel="nofollow">http://www.junix.ch/bcb/help/debug.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167655</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 03 Nov 2006 12:38:04 GMT</pubDate></item><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 12:49:44 GMT]]></title><description><![CDATA[<p>So..habe jetzt in jede If-Abfrage eine Ausgabe gesetzt um zu sehen welche If-Abfragen er durchläuft. Er führt bei jeder Zahl nur den ersten If-Block aus, setzt preisfaktor also auf 1. Nur wenn preis 1.9 beträgt führt er den letzten Block aus un setzt preisfaktor also auf 0.</p>
<p>So ganz erklären kann ich mir das immer noch nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167668</guid><dc:creator><![CDATA[chazzz]]></dc:creator><pubDate>Fri, 03 Nov 2006 12:49:44 GMT</pubDate></item><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 12:58:42 GMT]]></title><description><![CDATA[<p>Zeig bitte nochmal deinen jetztigen Code, inklusive der Deklarationen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167675</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 03 Nov 2006 12:58:42 GMT</pubDate></item><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 13:11:42 GMT]]></title><description><![CDATA[<p>Das ganze sieht in etwas gekürzter Form so aus:</p>
<pre><code class="language-cpp">float preis;
float preisfaktor;
float anzahl;
float verkauft;

printf(&quot;Preis pro Becher: &quot;);
scanf(&quot;%lf&quot;,&amp;preis);
fflush(stdin);

if(preis &lt; 1) {

//If-Kontrolle
printf(&quot;\nDurchlauf 1&quot;);

preisfaktor = 1; }

else if(preis &gt;= 1 &amp;&amp; preis &lt; 1.3) {

//If-Kontrolle
printf(&quot;\nDurchlauf 2&quot;);

preisfaktor = 0.8; }

else if(preis &gt;= 1.3 &amp;&amp; preis &lt; 1.6) {

//If-Kontrolle
printf(&quot;\nDurchlauf 3&quot;);

preisfaktor = 0.7; }

else if(preis &gt;= 1.6 &amp;&amp; preis &lt; 1.9) {

//If-Kontrolle
printf(&quot;\nDurchlauf 4&quot;);

preisfaktor = 0.5; }

else if(preis &gt;= 1.9 &amp;&amp; preis &lt; 3.5) {

//If-Kontrolle
printf(&quot;\nDurchlauf 5&quot;);

preisfaktor = 0.15; }

else if(preis &gt;= 3.5) {

//If-Kontrolle
printf(&quot;\nDurchlauf 6&quot;);

preisfaktor = 0; }

verkauft = verkauft * preisfaktor;
verkauft = ceil(verkauft);

printf(&quot;\nSie haben %.0lf Artikel verkauft&quot;,verkauft);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1167687</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167687</guid><dc:creator><![CDATA[chazzz]]></dc:creator><pubDate>Fri, 03 Nov 2006 13:11:42 GMT</pubDate></item><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 13:13:09 GMT]]></title><description><![CDATA[<p>Zeile 52: Sollte natürlich heißen</p>
<pre><code class="language-cpp">verkauft = anzahl * preisfaktor;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1167688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167688</guid><dc:creator><![CDATA[chazzz]]></dc:creator><pubDate>Fri, 03 Nov 2006 13:13:09 GMT</pubDate></item><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 13:17:50 GMT]]></title><description><![CDATA[<p>Erstens: Lass das 'l' bei den Formatstrings weg, solange du nicht mit double-Werten arbeitest.</p>
<p>Zweitens: fflush(stdin) ist Humbug.</p>
<p>Drittens: Gib mal kontrollweise aus, was überhaupt in 'preis' eingetragen wurde.</p>
<p>(PS: Und der Kram sieht eher nach C aus als nach C++)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167693</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Nov 2006 13:17:50 GMT</pubDate></item><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 13:20:53 GMT]]></title><description><![CDATA[<p>Zu zweitens und dem PS, unser Programmierlehrer meinte das muss so sein, auf die Frage warum konnte er mir allerdings keine Antwort nennen. Habe mir das jetzt so angewhnt damit ich in seinen arbeiten keinen Abzug bekomme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167697</guid><dc:creator><![CDATA[chazzz]]></dc:creator><pubDate>Fri, 03 Nov 2006 13:20:53 GMT</pubDate></item><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 13:24:48 GMT]]></title><description><![CDATA[<p>Habe das Problem jetzt! Wenn ich bei den Formatstrings das l weglasse gibt er mir auch die Zahl aus die ich eingegeben habe, mit %lf kommt bei Preis nämlich immer 0 raus, ausser wenn die Eingabe 1 ist, dann kommt da ne ziemlich lange Zahl raus.</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167701</guid><dc:creator><![CDATA[chazzz]]></dc:creator><pubDate>Fri, 03 Nov 2006 13:24:48 GMT</pubDate></item><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 13:28:19 GMT]]></title><description><![CDATA[<p>chazzz schrieb:</p>
<blockquote>
<p>Zu zweitens und dem PS, unser Programmierlehrer meinte das muss so sein, auf die Frage warum konnte er mir allerdings keine Antwort nennen. Habe mir das jetzt so angewhnt damit ich in seinen arbeiten keinen Abzug bekomme.</p>
</blockquote>
<p>Dann schick ihn doch mal hier vorbei, damit er sich das richtig erklären lassen kann.</p>
<p>Kurzfassung: fflush() schreibt eigentlich nur Ausgabedaten vom Dateipuffer nach außen, was bei Eingabeströmen (wie stdin) passiert, ist &quot;implementation defined&quot;.<br />
(und MS war so &quot;freundlich&quot;, die Funktion so umzubiegen, daß sie den Lesepuffer eines Eingabestroms entsorgt - leider ist das überhaupt nicht portabel)</p>
<p>PS: Und mit dem PS da oben meinte ich nur, daß du im falschen Board gelandet bist <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>Edit:</p>
<p>chazzz schrieb:</p>
<blockquote>
<p>Habe das Problem jetzt! Wenn ich bei den Formatstrings das l weglasse gibt er mir auch die Zahl aus die ich eingegeben habe, mit %lf kommt bei Preis nämlich immer 0 raus, ausser wenn die Eingabe 1 ist, dann kommt da ne ziemlich lange Zahl raus.</p>
</blockquote>
<p>War zu erwarten - mit %lf interpretiert scanf() die Eingabevariable als double - und die sind etwas anders aufgebaut als float's.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167703</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 03 Nov 2006 13:28:19 GMT</pubDate></item><item><title><![CDATA[Reply to If Abfrage mit float will nicht so recht on Fri, 03 Nov 2006 13:31:40 GMT]]></title><description><![CDATA[<p>Ok vielen Dank! Werd mal versuchen ihm das zu erklären <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="😉"
    /> Ob das jetzt C oder C++ ist kann ich so genau noch nicht beurteilen, ich weiß nur dass das Fach bei uns &quot;Programmiertechnik C++&quot; heißt.</p>
<p>Also vielen Dank nochmal! Ich werde sicher weiterhin mit ein paar Fragen zu euch kommen <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/1167707</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167707</guid><dc:creator><![CDATA[chazzz]]></dc:creator><pubDate>Fri, 03 Nov 2006 13:31:40 GMT</pubDate></item></channel></rss>