 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Hela Wann Guest
|
Posted: Wed Apr 14, 2004 10:13 am Post subject: teilen zweier Zahlen |
|
|
Hallo Liste.
Schon jetzt eine großen Entsschuldigung für diese Frage, wahrscheinlich
ist das vollkommenes Basiswissen, aber ich weiß nicht weiter. Also.
int a, b;
double c;
a = 3;
b = 5;
c = a / b;
printf("c = %fn", c);
Warum mir "0" angezeigt wird ist mir mittlerweile klar. Aber wie kann
ich nun bis auf zwei Stellen genau rechnen? Ich bin nicht der
Mathe-Freak, also wenn einer ne Funktion hat, dann poste sie bitte!
Vielen Dank,
Andre
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Andreas Huennebeck Guest
|
Posted: Wed Apr 14, 2004 11:40 am Post subject: Re: teilen zweier Zahlen |
|
|
Hela Wann wrote:
| Quote: | Schon jetzt eine großen Entsschuldigung für diese Frage, wahrscheinlich
ist das vollkommenes Basiswissen, aber ich weiß nicht weiter. Also.
int a, b;
double c;
a = 3;
b = 5;
c = a / b;
printf("c = %fn", c);
Warum mir "0" angezeigt wird ist mir mittlerweile klar. Aber wie kann
ich nun bis auf zwei Stellen genau rechnen? Ich bin nicht der
Mathe-Freak, also wenn einer ne Funktion hat, dann poste sie bitte!
|
Ganz einfach: mindestens einen int nach double casten:
c = (double)a / b;
c = a / (double)b;
c = (double)a / (double)b;
Tschau
Andreas
--
Andreas Hünnebeck | email: [email]ah (AT) despammed (DOT) com[/email]
----- privat ---- | www : http://www.huennebeck-online.de
Fax/Anrufbeantworter: 0721/151-284301 o. 0180/50525-5232659 (24 Pfg/Min)
SMS: D1=72617 D2=0172/7366-042 E-Plus=0177/7934-396 Viag=0179/2029-894
GPG-Key: http://www.huennebeck-online.de/public_keys/andreas.asc
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Kostka, Volkmar Guest
|
Posted: Wed Apr 14, 2004 12:31 pm Post subject: Re: teilen zweier Zahlen |
|
|
Hallo,
Hela Wann wrote:
| Quote: | Hallo Liste.
Schon jetzt eine großen Entsschuldigung für diese Frage, wahrscheinlich
ist das vollkommenes Basiswissen, aber ich weiß nicht weiter. Also.
int a, b;
double c;
a = 3;
b = 5;
c = a / b;
printf("c = %fn", c);
Warum mir "0" angezeigt wird ist mir mittlerweile klar. Aber wie kann
ich nun bis auf zwei Stellen genau rechnen? Ich bin nicht der
Mathe-Freak, also wenn einer ne Funktion hat, dann poste sie bitte!
|
Du kannst nicht auf zwei Stellen genau rechnen, nur anzeigen.
Eine Ganzzahloperation wird immer ohne Nachkommastellen ausgeführt, eine
Fließkommaoperation immer mit allen im Datentyp enthaltenen
Nachkommastellen.
Wenn du wirklich auf zwei Stellen rechnen musst, kannst du
Festkommazahlen verwenden, indem du alle Zahlen und Operationen mit 100
skalierst, oder dir eine passende Festkommaklasse schreibst.
MFG
Volkmar Kostka
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Stefan Reuther Guest
|
Posted: Wed Apr 14, 2004 1:25 pm Post subject: Re: teilen zweier Zahlen |
|
|
Hela Wann wrote:
| Quote: | Schon jetzt eine großen Entsschuldigung für diese Frage, wahrscheinlich
ist das vollkommenes Basiswissen, aber ich weiß nicht weiter. Also.
int a, b;
double c;
a = 3;
b = 5;
c = a / b;
printf("c = %fn", c);
Warum mir "0" angezeigt wird ist mir mittlerweile klar. Aber wie kann
ich nun bis auf zwei Stellen genau rechnen?
|
c = double(a) / b;
printf("c = %.2fn", c);
Stefan
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Lars H. Rohwedder Guest
|
Posted: Wed Apr 14, 2004 2:02 pm Post subject: Re: teilen zweier Zahlen |
|
|
Hela Wann <hela (AT) helawann (DOT) de> wrote:
| Quote: | Hallo Liste.
Schon jetzt eine großen Entsschuldigung für diese Frage, wahrscheinlich
ist das vollkommenes Basiswissen, aber ich weiß nicht weiter. Also.
int a, b;
double c;
a = 3;
b = 5;
c = a / b;
printf("c = %fn", c);
Warum mir "0" angezeigt wird ist mir mittlerweile klar.
|
Ja? Warum denn? :-)
| Quote: | Aber wie kann ich nun bis auf zwei Stellen genau rechnen?
|
Meinst du "mit zwei (Dezimal-)Stellen Genauigkeit" oder "mit zwei
Dezimalstellen nach dem Komma"? Oder meinst du etwas ganz anderes?
Ich würde deinen obigen Code wie folgt umschreiben:
c = double(a)/b;
printf("c = %.2fn", c);
Dann wird zwar mit der internen Genauigkeit von double gerechnet, aber
immerhin die Ausgabe wird auf zwei Dezimalstellen nach dem Komma
gerundet. Falls es das ist, was du wolltest, ist das die Lösung.
Gruß,
Lars R.
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Hela Wann Guest
|
Posted: Wed Apr 14, 2004 2:20 pm Post subject: Re: teilen zweier Zahlen |
|
|
Stefan Reuther wrote:
| Quote: | Hela Wann wrote:
Schon jetzt eine großen Entsschuldigung für diese Frage, wahrscheinlich
ist das vollkommenes Basiswissen, aber ich weiß nicht weiter. Also.
int a, b;
double c;
a = 3;
b = 5;
c = a / b;
printf("c = %fn", c);
Warum mir "0" angezeigt wird ist mir mittlerweile klar. Aber wie kann
ich nun bis auf zwei Stellen genau rechnen?
c = double(a) / b;
printf("c = %.2fn", c);
Stefan
Vielen Dank für die hilfe. Dass bei double auch immer alles mit |
berechnet wird habe ich mir gedacht, nur war meine Vermutung, dass es
so, wie ich es geschrieben habe auch funktionieren sollte. Aber jetzt
klappt alles und nachmals : DANKE!!!!!
Andre
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Werner Salomon Guest
|
Posted: Wed Apr 14, 2004 8:12 pm Post subject: Re: teilen zweier Zahlen |
|
|
Hela Wann <hela (AT) helawann (DOT) de> wrote
| Quote: | Schon jetzt eine großen Entsschuldigung für diese Frage, wahrscheinlich
ist das vollkommenes Basiswissen, aber ich weiß nicht weiter. Also.
int a, b;
double c;
a = 3;
b = 5;
c = a / b;
printf("c = %fn", c);
Warum mir "0" angezeigt wird ist mir mittlerweile klar. Aber wie kann
ich nun bis auf zwei Stellen genau rechnen? Ich bin nicht der
Mathe-Freak, also wenn einer ne Funktion hat, dann poste sie bitte!
|
Hallo Andre,
Rechnen kannst Du auf "double genau". Und das Ergebnis läßt sich auf
zwei Stellen hinter dem Komma genau anzeigen.
#include <iostream> // cout
#include <iomanip> // setprecision
....
using namespace std;
int a = 3; // jede Variable beim Anlegen gleich initialisieren
int b = 5;
double c = double( a ) / b; // auf 'double genau' rechnen
cout << "c= " << fixed << setprecision( 2 ) << c << endl;
Gruß
Werner
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Sven Bauhan Guest
|
Posted: Sun Apr 18, 2004 10:56 pm Post subject: welcher cast? [was: teilen zweier Zahlen] |
|
|
| Quote: | double c = double( a ) / b; // auf 'double genau' rechnen
|
double(a) ist ja wieder C-code.
Aber welcher C++-cast wäre hier angebracht? Ich würde reinterpret_cast
vorschlagen - oder ist hier static_cast sinnvoller?
Sven
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Rolf Magnus Guest
|
Posted: Sun Apr 18, 2004 11:51 pm Post subject: Re: welcher cast? [was: teilen zweier Zahlen] |
|
|
Sven Bauhan wrote:
| Quote: | double c = double( a ) / b; // auf 'double genau' rechnen
double(a) ist ja wieder C-code.
|
Nö.
| Quote: | Aber welcher C++-cast wäre hier angebracht?
|
Entweder der obige, oder ein static_cast oder ein C-Style cast.
| Quote: | Ich würde reinterpret_cast vorschlagen - oder ist hier static_cast
sinnvoller?
|
Wenn du mit "sinnvoller" korrekt meinst, dann ja.
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Horst Kraemer Guest
|
Posted: Mon Apr 19, 2004 8:05 am Post subject: Re: welcher cast? [was: teilen zweier Zahlen] |
|
|
On Mon, 19 Apr 2004 00:56:10 +0200, Sven Bauhan <svenbauhan (AT) web (DOT) de>
wrote:
| Quote: | double c = double( a ) / b; // auf 'double genau' rechnen
double(a) ist ja wieder C-code.
|
In C waere das ein Syntaxfehler. Du willst vielleicht sagen, dass
double(a) aequivalent zum C-kompatiblen cast (double)a ist.
| Quote: | Aber welcher C++-cast wäre hier angebracht? Ich würde reinterpret_cast
vorschlagen - oder ist hier static_cast sinnvoller?
|
Nimm den, den der Compiler akzeptiert. Es gibt nur einen...
Man kann auch nachlesen, welcher cast wofuer zustaendig ist.
--
Horst
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|