2011-01-15 9 views

答えて

3

一般的に、これを行う方法はないので、あなたの質問に答えるのは難しいです。数学的に言えば、複素数(a + bi)を実数(a + 0i)にキャストすることは何を意味しますか?複雑な用語を削除するか、b = 0の場合に制限することができます。この第1の選択肢は優しくないと思われ、第2の選択肢は必ずしも機能しない。あなたはアドレスにあります

第二の問題は、C++でcomplexテンプレートがintにロスレス変換がついていませんfloatdouble、およびlong double、存在することです。最初の部分の詳細を調べると、残りのキャストがまだ有効であることを確認する必要があると思います。

何がやりたいことは、あなたがこれを行うことができ、complexから実数成分を抽出している場合:あなたは(オペレータint型をオーバーロードすることができます

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

、その後、おそらく

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

(a + bi)の絶対値を計算することもできます。これはおそらくOPに必要なものです。 – ybungalobill

関連する問題