Vins V Vins Регистрация 6 Ноя 2013 Сообщения 93 Репутация 0 Спасибо 0 Монет 0 11 Янв 2023 #1 cout << 2 / 0.0833333333333333333333333333; // 24 Должно быть // 24,00000000000000000000000001
Lost9ra L Lost9ra Регистрация 29 Дек 2013 Сообщения 91 Репутация 1 Спасибо 0 Монет 0 11 Янв 2023 #2 #include <iomanip> cout<<setprecision(число знаков после запятой)<<a; может так
_SW_ S _SW_ Регистрация 31 Май 2013 Сообщения 105 Репутация 1 Спасибо 0 Монет 0 11 Янв 2023 #3 А зачем тебе 26 нулей? Вот радиус нашей галактики 4,7303652362904e+20, тебе что надо телепортироваться с большой точностью на другой край галактики?
А зачем тебе 26 нулей? Вот радиус нашей галактики 4,7303652362904e+20, тебе что надо телепортироваться с большой точностью на другой край галактики?
andreihacker A andreihacker Регистрация 5 Ноя 2013 Сообщения 88 Репутация 0 Спасибо 0 Монет 0 11 Янв 2023 #4 Напиши функцию деления столбиком. Тогда можешь использовать массив для хранения разрядов числа с любой точностью.
Напиши функцию деления столбиком. Тогда можешь использовать массив для хранения разрядов числа с любой точностью.
DaNiK77777 D DaNiK77777 Регистрация 12 Дек 2013 Сообщения 89 Репутация 0 Спасибо 0 Монет 0 11 Янв 2023 #5 Для получения 24,00000000000000000000000001 использовать длинную арифметику с фиксированной запятой. А для точного ответа использовать рациональные числа (хранящиеся в виде числитель/знаменатель). 0.08(3) - это же 1/12. Думаю, для С++ есть готовые реализации таких модулей. Точность double - порядка 16-17 значащих десятичных цифр. Нельзя ожидать 28 точных цифр ответа.
Для получения 24,00000000000000000000000001 использовать длинную арифметику с фиксированной запятой. А для точного ответа использовать рациональные числа (хранящиеся в виде числитель/знаменатель). 0.08(3) - это же 1/12. Думаю, для С++ есть готовые реализации таких модулей. Точность double - порядка 16-17 значащих десятичных цифр. Нельзя ожидать 28 точных цифр ответа.