【发布时间】:2013-05-31 04:54:54
【问题描述】:
我一生中第一次使用 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
我知道这些只是警告,但我的代码仍然失败......还有其他方法吗?
【问题讨论】:
-
那根本不应该编译,
=右边的double是什么? -
你为什么在这个计算中使用浮点数?与
ints 合作就可以了。 -
如果我把它关掉,我会收到以下错误
error C2668: 'floor' : ambiguous call to overloaded function....could be 'long double floor(long double) or 'float floor(float)' or 'double floor(double) -
在这种情况下,您没有正确复制/粘贴代码。问题中的代码将给出另一个错误。一个正确的错误,而不是像您的问题中那样的 警告。
标签: c++ visual-studio-2010 int double type-conversion