Typumwandlungen C++ |
|
Ja, das geht kürzer:
code: |
1:
|
f=1 + x + x*x/2.0 + x*x*x/6.0 + x*x*x*x/24.0; |
|
1. int + double = double
es reicht also, wenn eine der beiden Zahlen double ist, ebenso bei /
2. Zahlen kann man einfach mit .0 am Ende umwandeln, also z.B. 2.0 (die 0 brauchst du nicht unbedingt, 2. geht genauso)
__________________ Syntax Highlighting fürs Board (Link)
|
|
11.04.2013 08:06 |
|
|
|
Hallo, Airblader.
Stimmt, eigentlich könnte man ja die Zahl x gleich vom Typ double auffassen.
Dann hätte ich dieses:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
#include <iostream>
using namespace std;
int main() {
double x=1,w,y,f;
w=(x-1)*(x-1);
y=((x-1)/(x+1))+w;
f=1+x+((x*x)/(double)2)+((x*x*x)/((double)6))+((x*x*x*x)/((double)24));
cout << w << endl;
cout << y << endl;
cout << f << endl;
} |
|
Das sieht schon viel schöner aus - finde ich. Denn ich muss nur noch die Nenner in den Typ double umwandeln. Oder muss ich das gar nicht, weil es reicht, wenn der Zähler vom Typ double ist?
Ich habe das mal ausprobiert, also:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
|
#include <iostream>
using namespace std;
int main() {
double x=1,w,y,f;
w=(x-1)*(x-1);
y=((x-1)/(x+1))+w;
f=1+x+((x*x)/2)+((x*x*x)/(6))+((x*x*x*x)/(24));
cout << w << endl;
cout << y << endl;
cout << f << endl;
} |
|
und tatsächlich, das liefert ebenfalls
code: |
1:
2:
3:
|
0
0
2.70833 |
|
.
Also liege ich wohl richtig damit, dass es vollkommen ausreichend ist, dass der Zähler von diesem Typ ist.
Edit: Jetzt lese ich, dass eulerscheZahl das ja auch schon geschrieben hatte, sorry, total überlesen.
Dieser Beitrag wurde 4 mal editiert, zum letzten Mal von Dragon_Fighter: 11.04.2013 11:56.
|
|
11.04.2013 11:49 |
|
|
|