int Variablen über dritte Variable zu double geht nicht?
-
#include <iostream> using namespace std; int main(){ int n1(0), n2(0); cout << "Bitte geben Sie die erste Zahl ein: "; cin >> n1; cout << "Bitte geben Sie die zweite Zahl ein: "; cin >> n2; double n3 = n1/n2; cout << "Das Produkt der beiden Zahlen lautet: " << n1*n2 <<endl << "Der Quotient der beiden Zahlen lautet: " << n3 << endl << "Der Divisionsrest der beiden Zahlen ist: " << n1%n2 << endl; return 0; }Müsste nicht normalerweise durch die Definition von n3 als double das Ergebnis von n1/n2 in double konvertieren?
-
Hallo,
Müsste nicht normalerweise durch die Definition von n3 als double das Ergebnis von n1/n2 in double konvertieren?
nop, das must du explizit casten!
Er rechnet erst:
int/int
und macht daraus dann double!
so würds gehen:#include <iostream> using namespace std; int main() { int n1(0), n2(0); cout << "Bitte geben Sie die erste Zahl ein: "; cin >> n1; cout << "Bitte geben Sie die zweite Zahl ein: "; cin >> n2; double n3 = static_cast<double>(n1)/static_cast<double>(n2); cout << "Das Produkt der beiden Zahlen lautet: " << n1*n2 <<endl << "Der Quotient der beiden Zahlen lautet: " << n3 << endl << "Der Divisionsrest der beiden Zahlen ist: " << n1%n2 << endl; return 0; }PS: Die 3. Variable ist eigentl. unnötig

Grüße
Edit: PS
-
In diesem Fall reicht auch ein Cast. Bei einer arithmetischen Operationen wird das Ergebnis double wenn mindestens ein Operand double ist.
double n3 = double(n1)/n2;
-
lol, jo: Aber meins sieht schöner aus

-
-
Bei solchen trivialen Konvertierungen ist ein double(n1) einem static_cast< double >(n1) vorzuziehen, wenn ihr mich fragt.
An der Stelle geschieht ja keiner böser cast den man sofort sehen muss, sondern es wird viel mehr ein double aus einem integer erzeugt, was double(n1) viel deutlicher zum Ausdruck bringt.
-
@Dr. Prof:
hm, es ging nur um Schönheit, siehste Swordfish hat mich verstanden!
Swordfish schrieb:
, hehe^^
-
Ich habe schon ewig nichts mehr in C++ gemacht
und frage mich deshalb wasstatic_cast<double>(n1)für'n neumodisches Zeugs ist

-
schau mal hier rein
http://tutorial.schornboeck.net/casts.htm
oder auch in die FAQ
-
Danke
