C 对于更大范围的数字,该代码将如何工作?

C 对于更大范围的数字,该代码将如何工作?,c,C,如果d的范围为1Adouble精度数字不能保持2.3E-308到1.7E+308之间的所有值,则它能够将这些数字之间的值保持在约15位小数的精度 这意味着某些数字(例如您的示例)所需的精度超过了8字节数据所能存储的精度。欢迎来到浮点数字的世界。你应该看看精度的概念。关于任意精度FP,请参见。@MargaretBloom-您理解这个问题吗?也许只有我:(@MartinJames ahahah,我只是做了一个有教育意义的猜测。@razibossainsauvo不,它不能容纳10⁰1正确。但它可以足够

如果d的范围为1A
double
精度数字不能保持2.3E-308到1.7E+308之间的所有值,则它能够将这些数字之间的值保持在约15位小数的精度


这意味着某些数字(例如您的示例)所需的精度超过了8字节数据所能存储的精度。

欢迎来到浮点数字的世界。你应该看看精度的概念。关于任意精度FP,请参见。@MargaretBloom-您理解这个问题吗?也许只有我:(@MartinJames ahahah,我只是做了一个有教育意义的猜测。@razibossainsauvo不,它不能容纳10⁰1正确。但它可以足够精确地保存它以打印出近似结果。可能是
int main(){

 double d,n;

 scanf("%lf%lf", &n, &d))
 {
     printf("%lf\n", pow(d, 1/n));
 }

  return 0;
}