gpt4 book ai didi

c - C 语言中 Double 变成 nan

转载 作者:行者123 更新时间:2023-11-30 15:40:50 25 4
gpt4 key购买 nike

我有一个使用int(例如2488)来存储温度值的函数。我必须调用函数 getTemp() 来获取 int。 getTemp 函数返回一个 double 并使用 int 返回正确的数字。 getTemp() 所做的只是return (double)x/100.0,其中 x 在本例中为 2488

返回的 double 值为24.88。然后,该值被发送到另一个函数,该函数将 double 添加到数组中。函数调用 DAaddDouble(double m, int x, int y),其中 m 是要相加的值,xy 是指定在何处添加double 的坐标。

问题是,它变成了nan

double a = getTemp();
//a is correct, i.e. 24.88
DAaddDouble(a, x, y);
/*-----------inside DAaddDouble----------*/
void DAaddDouble(double m, int x, int y)
{
//at this point, a (or m, same) is 0.nan
cord = x + y*40; //where to put the double
snprintf(DARRAY[cord], 5, "%f",m);
printf(....DARRAY[cord]...);

}

输出:-nan

最佳答案

函数DAaddDouble的签名是:

void DAaddDouble(int m, int x, int y)

请注意,m 的类型为int,并且在函数内部,您具有:

snprintf(DARRAY[cord], 5, "%f",m);

其中 %f 需要类型 double,这是未定义的行为。

您可能需要的是将参数m设置为double(如代码上方的文字所示)。

void DAaddDouble(double m, int x, int y)

关于c - C 语言中 Double 变成 nan,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20816931/

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