Форум программистов, компьютерный форум CyberForum.ru

Как именно округляются float и double? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Компилятор C не C++ http://www.cyberforum.ru/cpp-beginners/thread151136.html
Где можно скачать один крмпилятор C (без C++!!!) можно можно в IDE главное чтобы весил как можно меньше в google искал он мне выдаёт копиляторы C/C++ и весят они до... короче много!!! Заранее всем спасибо!!!
C++ перевод строк как перевести строку при работе с файлами? заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread151134.html
знаю паскаль, учу с++. какие языки ещё нужны? может ассемблер, или яву? C++
знаю паскаль, учу с++. какие языки ещё нужны? может ассемблер, или яву?
Ошибка при компиляции "Cannot convert `std::string' to `const char*" C++
Подскажите пожалуйста.Компилятор указывает на 13-ой позиции на ошибку типа: cannot convert `std::string' to `const char* for argument `1' to `void strcount(const char*)' В чём может быть проблема при вводе строки(объект string)? #include <cstdlib> #include <iostream> #include <string> const int ArSize = 10; void strcount(const char * str); int main(int argc, char *argv) {
C++ не находит фаил http://www.cyberforum.ru/cpp-beginners/thread151123.html
фаил с реализацией функций-членов класса, не может найдти фаил с опсанием класса. вот:
C++ Найти сумму двух денежных сумм заданных прописью, ответ вывести прописью Приветствую форумчан, прошу момочь с задачей : Сложить две денежные суммы в рублях и копейках, заданные прописью. Результат вывести также прописью. Хоть алгоритм намекните!!! или так чтобы я понял. Заранее спасибо!:-). А если и код кто напишет с коменнтариями вообще замечательно:-))) подробнее

Показать сообщение отдельно
zabolekar
Сообщений: n/a
02.07.2010, 13:51     Как именно округляются float и double?
Вот имеется double l, функция sqrt из cmath и следующие формулы:

C++
1
sqrt(2-2*sqrt(1-l*l/4))
C++
1
sqrt(l*l/4+1-sqrt(1-l*l/4)-sqrt(1-l*l/4)+1-l*l/4)
C++
1
sqrt(l*l/4+(1-sqrt(1-l*l/4))*(1-sqrt(1-l*l/4)))
Если l длина стороны вписанного в круг с радиусом 1 правильного многоугольника с 2^n сторонами, то формула должна вычислить длину стороны вписанного в тот же круг правильного многоугольника с 2^{n+1} cторонами.

Математически эти три формулы одно и то же. Для больших l результаты совпадают, но начиная с e-007 разброд и шатания уже в районе двадцати процентов. Где-то после e-008 первая формула валится в 0. Вторая начиная с e-009 выдаёт nan. Третья выдаёт нечто на первый взгляд осмысленное, но если через эти многоугольники попытаться вычислить пи, то начиная с 268.435.456-угольника получается некое число, которое от пи отличается с четырнадцатого знака после запятой, однако само уже больше не меняется вообще, сколько углов ни делай. Ну, пока в nan не упрётся, конечно.

Я понимаю, что, пока используются double, от ошибок округления никуда не деться. Но мне интересно, почему они именно такие и как их можно более-менее оценить при взгляде на формулу. Особенно я не понимаю, откуда вторая берёт nan. Получает число меньше нуля, а потом из него корень?

Компилятор g++, если это важно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru