我正在处理无法完成获取数据的应用程序中的错误。假设这是用户的一项操作,我们在内部计算并显示一些信息。将 Visual Studio 从 2010 迁移到 2019 后出现此问题。
我想出原因是因为下面的语句返回
-1
,但我不明白为什么它返回-1
而不是-2570
:
int acqElevStartECount = -2302;
int accElevECounts = 68;
int cvSettleCount = 200;
int startElevECount = static_cast<unsigned int>((double)acqElevStartECount - accElevECounts - cvSettleCount);
如果我从声明中删除
(double)
,它工作正常。
仅供参考,它是在 Visual Studio 2010 中运行良好的遗留代码。此外,我不知道他们为什么将
int
数据类型转换为 double
然后到 unsigned int
.
我想知道它返回的原因
-1
.