gpt4 book ai didi

c++ - 有可能将两个从 unsigned int 转换为负 float 的 float 相除吗?

转载 作者:太空狗 更新时间:2023-10-29 21:50:30 25 4
gpt4 key购买 nike

unsigned int deltaTime = now() - last();
unsigned int freq = getFreq();
float timeOfGap = float(deltaTime) / float(freq);

ASSERT(0.0f <= timeOfGap, "WHAT?");

我的程序得到了一个非常奇怪的结果。我没有看到发生的场景。但我有一个日志,上面说确实至少多次提出。

是否有可能将两个从 unsigned int 转换为负 float 的 float 相除?


好的,谢谢大家。很高兴看到你的关注。让我试着添加一些关于它的描述。它会对您有所帮助。

我在做一个网络游戏,在上亿次的游戏服务中,这种情况很少出现,但经常出现。我无法调试或捕获准确的镜头,但它已记录在数据库错误消息中。

如您所见,timeOfGap 应该是 NaN,但日志并未准确提示该值。 timeOfGap 如下累积;

mTotalFrameRateTimeAsASecond += timeOfGap;

并且该程序记录了 mTotalFrameRateTimeAsASecond,这是一个负值。但是除了这个值的符号是负数之外,它是正确的值。意思是,如果我将最终值除以帧率,那么时间看起来也一样好。假设播放时间为 500 秒,即 -30000(每秒 60 帧速率)。

最佳答案

也许它不是负数,而是一个NAN . 0.0f <= NANfalse .如果两个操作数都为零,则可能会发生这种情况。

关于c++ - 有可能将两个从 unsigned int 转换为负 float 的 float 相除吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6028115/

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