0

学校の課題で人生で初めて Visual Studio 2010 を使用しています。これまでのところ、これは非常に単純ですが、'double' を 'int' に変換しようとすると問題が発生します。trunc()どちらもVS2010では機能しないことは理解してround()いますが、他にこれを行う方法がわかりません....ここに私のコードがあります:

double q = double floor((p+r)/2);
q = (int) q;
mergeSort(v,p,q);

mergeSort(v,q+1,r);

merge(v,p,q,r);

コードの残りの部分を操作するには、変数qを int にする必要があります...ただし、これらのエラーが発生しているため、キャストが機能していないようです:

warning C4244: 'argument' : conversion from 'double' to 'int', possible loss of data

これらは単なる警告であることはわかっていますが、私のコードはまだ失敗しています...これを回避する方法はありますか?

4

1 に答える 1

3

double を int に変換すると、常にデータが失われます。これが警告の内容です。これが実際に望ましい結果であることはわかっているので、警告は無視できます。ただし、

static_cast<int>(q)

ただの代わりに(int)q;

于 2013-06-04T17:28:34.840 に答える