Здравствуйте, uzhas, Вы писали:
U>Здравствуйте, vopl, Вы писали:
V>>для поддерживаемой точности double, которая составляет от 15 до 17 десятичных разрядов — значение 123.456 представимо без потерь
U>возможно, у нас разное понимание выражения "без потерь".
U>для меня выражения эквивалентны: не представимо в формате double точно, с потерями, с ошибками. 123.456 нельзя представить в виде суммы конечной последовательности степеней двойки, только бесконечной. поэтому говорят, что такие числа не представимы в формате double точно
О разных пониманиях — да, безусловно.
В этом плане очень удобную штуку показывает, например, Python. Для repr() для плавающего значения он выбирает то десятичное представление, которое наиболее короткое из конвертируемых в это двоичное значение. Для 123.456 это 123.456, значит, можно сказать, что это число представимо точно
![](/Forum/Images/smile.gif)
И так будет для любых значений до 15 десятичных цифр включительно.
Считаю, что в этом смысле нет проблем говорить о представлении без потерь.
U>это самое точное представление дабла в виде десятичной записи
В том и дело, что 123.456, 1.23456e+2 дадут то же представление.
Здравствуйте, uzhas, Вы писали:
U>возможно, у нас разное понимание выражения "без потерь".
Ага. Я чето зарубился на строковом представлении для JSON, чтобы ТС мог гонять 123.456 туда-сюда.
А так — согласен, даже насчет бесконечности)
Здравствуйте, niXman, Вы писали:
X>зы
X>в boost.multiprecision есть, вроде бы, необходимые классы, вот только не знаю, какой из них юзать...
если в этих даблах не больше 3-4 знаков после запятой, можно хранить их умноженными на 10 000...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском