gpt4 book ai didi

c++ - 警告 C4244 : 'argument' : conversion from 'double' to 'float' , 可能丢失数据 - C++

转载 作者:行者123 更新时间:2023-11-30 02:39:34 25 4
gpt4 key购买 nike

我昨天遇到了这个问题,一直没能解决。所以,如果你能帮助我,我会很高兴。

所以我得到这个错误:

warning C4244: 'argument' : conversion from 'double' to 'float', possible loss of data

这两行

angles[0] = (float)(atanf(delta[2] / hyp) * 57.295f - MyPunch[0] * 2);
angles[1] = (float)(atanf(delta[1] / delta[0]) * 57.295f - MyPunch[1] * 2);

剩下的代码;

void calcang(float *src, float *dst, float *angles)
{
float MyPunch[2];
Lokalitetstjeneste.GetPunch(MyPunch);
double delta[3] = { (src[0] - dst[0]), (src[1] - dst[1]), (src[2] - (dst[2] - 61)) };
double hyp = sqrt(delta[0] * delta[0] + delta[1] * delta[1]);
angles[0] = (float)(atanf(delta[2] / hyp) * 57.295f - MyPunch[0] * 2);
angles[1] = (float)(atanf(delta[1] / delta[0]) * 57.295f - MyPunch[1] * 2);
angles[2] = 0.0f;

if (delta[0] >= 0.0)
{
angles[1] += 2.0f;
}
}

最佳答案

deltahyp 是 double 并且除法的结果是 double , atanf 取一个 float,这就是错误的来源来自。

我会将 atanf 更改为 atan 或以双倍执行所有操作。 Double 有大约 16 位有效数字, float 只有 7 位左右

关于c++ - 警告 C4244 : 'argument' : conversion from 'double' to 'float' , 可能丢失数据 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29717785/

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