gpt4 book ai didi

c - sqrt() 返回 INF

转载 作者:太空狗 更新时间:2023-10-29 15:53:29 26 4
gpt4 key购买 nike

您好,我正在尝试使用长 double 进行一些计算,我正在从 sqrt() 函数获取 INF。

代码:

#include <math.h>
#include <stdio.h>

int main()
{
long double bigNUMBER;
long double p1,p2,p3;
long double p4;

p1 = 4.769547e+155;
p2 = 1.012994e+170;
p3 = 1.714812e+169;

p4 = p1*p1 + p2*p2 + p3*p3;

bigNUMBER = sqrt(p4);

printf("product: %Lf\n\n", p4); // 1055562645989439942507809393771156765931135...

printf("\n result %Lf\n\n", bigNUMBER); // INF

return 0;
}

谢谢!

最佳答案

sqrt 获取并返回一个 double。当你调用它时,你的 long double 将被转换成一个 double ,它不能存储这么大的数字,从而得到无穷大的值。

使用 sqrtl 接受并返回一个 long double

关于c - sqrt() 返回 INF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4866511/

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