C long
Автор Вася Иванов задал вопрос в разделе Другие языки и технологии
(long double) C++ и получил лучший ответ
Ответ от Кrab Bark[гуру]
В Borland C++ с long double не работал, но, во-первых, в любом типе в плавающей точкой число хранится в двоичном виде, а не по десятичным цифрам, так что в 4 битах нецелое число (точнее, 1,6) десятичных цифр, а во-вторых, надо еще учитывать, что часть битов представления числа отводится на информацию о его знаке и порядке. Причем скорее всего в long double увеличен размер представляемых порядков, так что точность самого числа (мантисса) растет не на много.
Ответ от Alex[гуру]
это все из за особенностей представления чисел в памяти вот нашел более менее норм ссылку ссылка .ru/Cod/cod.html
вот еще ссылка, тут прям рисунок представления числа есть ссылка .hut .ru/Demenev/files/predstav.htm
это все из за особенностей представления чисел в памяти вот нашел более менее норм ссылку ссылка .ru/Cod/cod.html
вот еще ссылка, тут прям рисунок представления числа есть ссылка .hut .ru/Demenev/files/predstav.htm
Ответ от Александр Ильин[гуру]
Все правильно. Тут ни лонг, ни супер-пупер-лонг-дабл не спасет. Двоичное представление имеет ограниченную точность. И в математике с FP надо всегда это иметь в виду.
Т. е. , проще говоря, if (x = 1.0) неверно. Надо if (abs(x - 1.0) < epsilon) , где epsilon - некая допустимая для Вашей задачи погрешность.
Все правильно. Тут ни лонг, ни супер-пупер-лонг-дабл не спасет. Двоичное представление имеет ограниченную точность. И в математике с FP надо всегда это иметь в виду.
Т. е. , проще говоря, if (x = 1.0) неверно. Надо if (abs(x - 1.0) < epsilon) , где epsilon - некая допустимая для Вашей задачи погрешность.
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: (long double) C++