C++ double precision/precision

问题描述:

是否有任何浮点类型在小数点后存储的位数多于C++中的double(或任何替代方法,这会使double存储更多数字)?我看过long double也许更准确。C++ double precision/precision

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

如果很重要,那么我的电脑的处理器是英特尔®酷睿™i3 CPU M 380 @ 2.53GHz×4,计算机是64位,操作系统是Ubuntu,编译器是gcc。

the pixelated Mandelbrot set

+1

阅读这个家伙在Fractals上的博客文章:https://randomascii.wordpress.com/category/fractals/ –

+0

如果long'比'double'长,那么'long double'会更准确很多平台。用'sizeof'检查。英特尔FPU计算80位。 – EJP

+0

Mandelbrot集是不可计算的。这意味着在某些缩放时,无论迭代或精确度如何,您的计算机都会放弃。但是你可以去80位双打或者用软件编写你自己的程序。, –

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

你也可以“手工”做,但这将是很多工作。你将不得不保留数字作为他们的字符串表示,并自己手动进行算术运算。

+0

感谢您的回答!我会检查他们。字符串表示看起来很有趣。我知道加法和减法是如何工作的,但乘法和除法对我来说是未知的。如果我知道他们,我可以用泰勒系列做其他功能,例如sin,cos,x^y ...(我知道我的程序中不需要这些函数)。对数对我来说是一个问题,因为它的系列收敛在1半径范围内。 – csekri

+0

如果你想用手去做,继续,你会学到很多东西! – Telokis