2017-02-22 64 views
0

Есть ли тип с плавающей запятой, который хранит больше цифр после десятичной точки, чем double в C++ (или любая альтернатива, которая делает double сохранена больше цифр)?C++ double more precision/precision

Я читал, что long double может быть более точным.

В моей программе мы можем масштабировать набор Мандельброта, но после некоторого увеличения изображение становится неровным. Я думаю, это связано с тем, что длина между двумя комплексными числами, связанными с двумя соседними пикселями, меньше разницы между двумя последовательными значениями double. В программе я использовал длинный двойной.

Если это важно, то процессор моего компьютера - процессор Intel® Core ™ i3 M 380 @ 2,53 ГГц × 4, компьютер - 64 бит, операционная система - Ubuntu, а компилятор - gcc.

the pixelated Mandelbrot set

+1

Прочитайте записи блога этого парня в Fractals: https://randomascii.wordpress.com/category/fractals/ –

+0

'long double' более точен, если он длиннее' double', который он не включен многие платформы. Проверьте с помощью 'sizeof'. Intel FPU вычисляет в 80 бит. – EJP

+0

Набор Мандельброта не является вычислимым. Это означает, что при некотором увеличении ваш компьютер будет сдаваться, независимо от итераций или точности. Но вы можете перейти к 80-битным удвоениям или даже написать свои собственные подпрограммы в программном обеспечении. –

ответ

1

Вы должны смотреть на сторонние библиотеки, как boost.multiprecision или даже GMP.

Вы также можете сделать это «вручную», но это будет очень много работы. Вам нужно было бы сохранить числа в виде строкового представления и вручную выполнить арифметические операции.

+0

Спасибо за ответы! Я проверю их. Строковое представление кажется интересным. Я знаю, как работают сложение и вычитание, но умножение и деление неизвестны для меня. И если бы я их знал, я мог бы выполнять другие функции с помощью серии Тейлора, например. sin, cos, x^y ... (Я знаю, что мне не нужны эти функции в моей программе). Логарифм - вопрос для меня, потому что его ряд сходится в радиусе 1. – csekri

+0

Если вам нравится делать это вручную, продолжайте, вы узнаете много! – Telokis

 Смежные вопросы

  • Нет связанных вопросов^_^