编译器警告(等级 2)C4244

“argument”:从“type1”转换到“type2”,可能丢失数据

浮点类型已转换为整数类型。 可能发生了数据丢失。

如果收到 C4244,则应将程序更改为使用兼容类型,或向代码添加一些逻辑,以确保可能值的范围将始终与你使用的类型兼容。

C4244 也可在等级 3 和等级 4 触发;有关详细信息,请参阅编译器警告(等级 3 和等级 4)C4244

示例

下面的示例生成 C4244:

// C4244_level2.cpp
// compile with: /W2

int f(int x){ return 0; }
int main() {
   double x = 10.1;
   int i = 10;
   return (f(x));   // C4244
   // try the following line instead
   // return (f(i));
}