在VS2010 C ++中从'double'转换为'int'

时间:2013-06-04 17:22:25

标签: c++ visual-studio-2010 int double type-conversion

我在生命中第一次使用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

我知道这些只是警告,但我的代码仍然失败......还有其他方法吗?

1 个答案:

答案 0 :(得分:3)

如果要将double转换为int,则总是会丢失数据,这就是警告的内容。由于您知道这确实是期望的结果,因此您可以忽略该警告。 但是,您应该使用

static_cast<int>(q)

而不只是(int)q;