gpt4 book ai didi

c++ 从 'float' 到 'int32' 的转换,可能丢失数据

转载 作者:行者123 更新时间:2023-11-28 01:25:16 27 4
gpt4 key购买 nike

构建此代码返回从“float”到“int32”的转换,可能会丢失数据

我该如何解决它,我乞求学习 cpp

uint16 nRandom = Radius;
if (nRandom <= 0)
fRandom_X = (float)fX;
else
fRandom_X = (float)(myrand((fX - nRandom) * 10, (fX + nRandom) * 10) / 10);

nRandom = Radius;
if (nRandom <= 0)
fRandom_Z = (float)fZ;
else
fRandom_Z = (float)(myrand((fZ - nRandom) * 10, (fZ + nRandom) * 10) / 10);

pNpc->SetPosition(fRandom_X, 0.0f, fRandom_Z);

最佳答案

(将此答案限制为 IEEE754。)

float 无法存储 int32 可以存储的所有可能值(反之亦然),因此您的编译器会向您发出有用的警告。

一个经验法则是不要像这样混合你的类型:使用一种类型并坚持使用它。

如果您需要深入研究 float ,那么为了轻松的生活(以及现在可能更快的代码),请使用 double 而不是 floatdouble 可以存储 int32 可以存储的所有值,因此警告将消失。

关于c++ 从 'float' 到 'int32' 的转换,可能丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54163172/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com