我在生命中第一次使用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
我知道这些只是警告,但我的代码仍然失败......还有其他方法吗?
答案 0 :(得分:3)
如果要将double转换为int,则总是会丢失数据,这就是警告的内容。由于您知道这确实是期望的结果,因此您可以忽略该警告。 但是,您应该使用
static_cast<int>(q)
而不只是(int)q;