gpt4 book ai didi

C++ 双重比较的非常奇怪的行为

转载 作者:行者123 更新时间:2023-11-30 21:06:01 25 4
gpt4 key购买 nike

简单的双值比较不起作用.. enter image description here

enter image description here

如屏幕截图所示,

double mag = 0.109981
double radius = 0.002

因此,

if(mag > radius) {
// it's always false?
}

显然应该是正确的,但事实并非如此。 0.109981 为何不大于 0.002?

我在这里做错了什么?它给出了架构警告,但我仍然不明白这里发生了什么..

double mag = dVec.magnitude();
double radius = TOOL_TIP_RADIUS;
double diff = mag - radius;
cout << "mag: " << mag << endl << "radius: " << radius << endl << "diff: " << diff << endl << "mag > radius : " << (mag > radius) << endl;
if (mag > radius) {
// no collision
fve == (int) OUTSIDE;
}

最佳答案

如果你假设这条线:

fve == (int) OUTSIDE;

不执行任何操作,因为 fve 未设置为 OUTSIDE,这是因为您没有设置 fve外部

您正在比较 fveOUTSIDE 是否相等,然后丢弃结果。

我怀疑你应该写下(一个 =):

fve = (int) OUTSIDE;

关于C++ 双重比较的非常奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51052895/

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