C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

teilen zweier Zahlen

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Hela Wann
Guest





PostPosted: Wed Apr 14, 2004 10:13 am    Post subject: teilen zweier Zahlen Reply with 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!

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





PostPosted: Wed Apr 14, 2004 11:40 am    Post subject: Re: teilen zweier Zahlen Reply with quote



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





PostPosted: Wed Apr 14, 2004 12:31 pm    Post subject: Re: teilen zweier Zahlen Reply with quote




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





PostPosted: Wed Apr 14, 2004 1:25 pm    Post subject: Re: teilen zweier Zahlen Reply with quote

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





PostPosted: Wed Apr 14, 2004 2:02 pm    Post subject: Re: teilen zweier Zahlen Reply with quote

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





PostPosted: Wed Apr 14, 2004 2:20 pm    Post subject: Re: teilen zweier Zahlen Reply with quote

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





PostPosted: Wed Apr 14, 2004 8:12 pm    Post subject: Re: teilen zweier Zahlen Reply with quote

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





PostPosted: Sun Apr 18, 2004 10:56 pm    Post subject: welcher cast? [was: teilen zweier Zahlen] Reply with quote

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





PostPosted: Sun Apr 18, 2004 11:51 pm    Post subject: Re: welcher cast? [was: teilen zweier Zahlen] Reply with quote

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





PostPosted: Mon Apr 19, 2004 8:05 am    Post subject: Re: welcher cast? [was: teilen zweier Zahlen] Reply with quote

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
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.