【问题标题】:how this code will work for bigger range number? [closed]此代码如何适用于更大的范围数? [关闭]
【发布时间】:2016-02-21 09:55:11
【问题描述】:

如果 d 的范围是 1 Power of Cryptography !

int main(){

 double d,n;

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

  return 0;
}

【问题讨论】:

  • 欢迎来到浮点数的世界。你应该看看精度的概念。对于任意精度 FP,请参阅MPFR。
  • @MargaretBloom - 你明白这个问题吗?也许只有我:(
  • @MartinJames 啊哈哈,我只是做了有根据的猜测。
  • @RazibHossainShuvo 不,它不能正确保持 10¹⁰¹。但它可以足够精确地保存它以打印出近似结果。

标签: c


【解决方案1】:

double 精度数不能保存 2.3E-308 到 1.7E+308 之间的所有值,它能够保存这些数字之间的值,精度约为小数点后 15 位。

这意味着某些数字(例如您的示例)需要比 8 字节数据可以存储的精度更高。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多