【问题标题】:c++ double more accuracy/precision [duplicate]c ++加倍精度/精度[重复]
【发布时间】:2017-02-22 00:31:42
【问题描述】:

在 c++ 中,是否有任何浮点类型比 double 存储更多小数点后的数字(或任何替代方案,这使得 double 存储更多数字)?

我听说long double 可能更准确。

在我的程序中,我们可以放大 Mandelbrot 集,但经过一些放大后,图片会变得像素化。我认为这是因为与两个相邻像素相关联的两个复数之间的长度小于两个连续值之间的差异。在程序中我使用了 long double。

如果重要的话,那我电脑的处理器是Intel® Core™ i3 CPU M 380 @ 2.53GHz × 4,电脑是64位,操作系统是Ubuntu,编译器是gcc。

【问题讨论】:

  • 阅读这个家伙关于分形的博客文章:randomascii.wordpress.com/category/fractals
  • 如果 long doubledouble 长,它会更准确,这在许多平台上并不多。请与sizeof 联系。英特尔 FPU 以 80 位计算。
  • Mandelbrot 集是不可计算的。这意味着无论迭代或精度如何,您的计算机都会放弃。但是您可以使用 80 位双打,甚至可以在软件中编写自己的例程。,
  • @MalcolmMcLean 真的,它不可计算吗?这是为什么 ?请问您有这个链接可以提供吗?
  • 它不可计算的原因是它需要无限次迭代才能确定任意靠近边界的点是在集合内还是在集合外,并且不能对数地接近它要么。

标签: c++ double precision digit mandelbrot


【解决方案1】:

你应该看看像boost.multiprecision甚至GMP这样的第三方库。

您也可以“手动”完成,但这需要大量工作。您必须将数字保留为其字符串表示形式,并自己手动进行算术运算。

【讨论】:

  • 感谢您的回答!我会检查他们。字符串表示似乎很有趣。我知道加法和减法是如何工作的,但乘法和除法对我来说是未知的。如果我知道它们,我可以用泰勒级数制作其他功能,例如sin, cos, x^y ...(我知道我的程序中不需要这些函数)。对数对我来说是一个问题,因为它的级数在 1 个半径内收敛。
  • 如果你想亲手做,那就去吧,你会学到很多!
猜你喜欢
  • 1970-01-01
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 2011-02-23
  • 1970-01-01
相关资源
最近更新 更多