Другие языки программирования и технологии

Какая функция определяет количество знаков после запятой переменной double?

У меня есть программа, которая считает сумму ряда, в неё вводится значение x, точность, с которой определяется значение ln(x) и по формуле считается ln(x)

Я хочу, чтобы в ответе у меня в результате вычислений по формуле выводилось значение (переменная sum), которое не только считается с введённой точностью (difference), но и чтобы у него было такое же количество знаков после запятой, как и в числе, которое вводит пользователь. (difference)

Какая функция определяет количество знаков после запятой переменной double?
нет такой функции, потому что такого понятия не существует. Точнее он известен не для конкретного числа, а для тип данных.
В переменной вполне корректно будет записано 2.00000000000000000008
Александр Мительштет
Александр Мительштет
94 667
Лучший ответ
Относительная точность double фиксирована. А вот вывод ее значения можно сделать с разным количеством знаков после запятой (точнее, точки). Существует две функции: идущая от C printf и C++-ная cout, тоже со спецификаторами вида вывода, поддерживаемыми через заголовочный файл iomanip
Надо читать их описания и примеры использования и применять :)
RR
Ruslan Rustamov
52 397
Андрей Логинов Не совсем в этом вопрос, вопрос в функции, которая получает количество знаков после запятой числа double
Ruslan Rustamov "МНЕ НУЖНО ПОЛУЧИТЬ ЗНАЧЕНИЕ КОЛИЧЕСТВА ЗНАКОВ ПОСЛЕ ЗАПЯТОЙ"
Чаще всего их бесконечное количество, например, 666,6666666666666666666....
Но не все их верные, сколько верных, зависит от значения числа.
Вопрос не совсем корректен.
1. Пользователь не вводит тип double (как и другие числовые типы). Он вводит строку символов. которую потом преобразуется к типу double путем честного посимвольного анализа введенной строки. Неважно, что эту тяжелую работу взял на себя sscanf или atod. Эту работу кто-то должен сделать. Вы хотите вмешаться в нее?
Хотите не просто преобразовать сроку к double. но еще и учесть кол-во вводимых символов после запятой? Вам ни чего не остается, как самому обработать строку (написать что-то типа своего my_atod).
2. Уже у введенного числа double не возможности определить точность. Более того, понятие точность в данном случае - это точность, с которой Вам компьютер произвел вычисления. Введенное число 2.0 - компьютер воспринимает, как 2.000000000000000000000.Точность, с которой получены данные, введенные в компьютер - эту величину компьютер ни когда не узнает, если Вы ему особо не скажете.
3. Если уж зашел разговор про точность, то Вы не имеете право просто делать точность результата равной точности исходных данных. Тут есть свои формулы. Погрешность суммы ряда равна погрешности отдельного значения умноженной на кол-во значений.