0

我一生中第一次使用 Visual Studio 2010 来完成学校作业......到目前为止,它非常简单,但我在尝试将“double”转换为“int”时遇到了麻烦。我明白两者trunc()round()不能在 VS2010 中工作,但是我不确定我还能如何做到这一点......这是我的代码:

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 回答