2017-02-22 69 views
0

是否有任何浮點類型在小數點後存儲的位數多於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位雙打或者用軟件編寫你自己的程序。, –

回答

1

你應該看看像boost.multiprecision甚至GMP第三方庫。

你也可以「手工」做,但這將是很多工作。你將不得不保留數字作爲他們的字符串表示,並自己手動進行算術運算。

+0

感謝您的回答!我會檢查他們。字符串表示看起來很有趣。我知道加法和減法是如何工作的,但乘法和除法對我來說是未知的。如果我知道他們,我可以用泰勒系列做其他功能,例如sin,cos,x^y ...(我知道我的程序中不需要這些函數)。對數對我來說是一個問題,因爲它的系列收斂在1半徑範圍內。 – csekri

+0

如果你想用手去做,繼續,你會學到很多東西! – Telokis