为什么 static_cast<> 返回 -1

问题描述 投票:0回答:0

我正在处理无法完成获取数据的应用程序中的错误。假设这是用户的一项操作,我们在内部计算并显示一些信息。将 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
.

c++
© www.soinside.com 2019 - 2024. All rights reserved.