2011-01-15 19 views

Antwort

3

Es ist schwierig, Ihre Frage zu beantworten, da es im Allgemeinen keine Möglichkeit gibt, dies zu tun. Was bedeutet es mathematisch, eine komplexe Zahl (a + bi) in eine reelle Zahl (a + 0i) zu schreiben? Du könntest den komplexen Begriff fallen lassen oder dich auf den Fall beschränken, wo b = 0 ist, nehme ich an; Diese erste Option scheint unelegant zu sein und die zweite Option funktioniert nicht immer.

Das zweite Problem, das Sie Adresse haben, ist, dass in C++ die complex Vorlage für float existiert, double und long double, von denen keine lossless Conversions int haben. Ich nehme an, wenn Sie die Details des ersten Teils erarbeiten, müssen Sie sicherstellen, dass der Rest der Besetzung noch gültig ist.

Wenn das, was Sie tun möchten, ist die reale Komponente aus einem complex zu extrahieren, können Sie dies tun:

complex<double> myComplex = /* ... */ 
double real = myComplex.real(); 

und dann möglicherweise

int realInt = static_cast<int>(real); 
+0

Sie können auch den absoluten Wert von (a + bi) berechnen, was wahrscheinlich das ist, was das OP benötigt. – ybungalobill

0

Sie Operator int (Überlastung kann);

Verwandte Themen