Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Red_Pain
0 / 0 / 1
Регистрация: 06.11.2015
Сообщений: 7
Записей в блоге: 1
#1

Double сокращение с точность до N знаков - C/C++ - C++

06.11.2015, 17:53. Просмотров 1475. Ответов 5

Хочу написать программу сокращающую число знаков после запятой на какое-то определённое количество заданное с клавиатуры (n). Пробовал сделать по аналогии с числами, например до 3 знаков всё работает printf("%.3f",a); Но я хочу чтобы количество знаков после запятой ты мог задать сам. Прошу помощи в реализации.
http://www.cyberforum.ru/cpp-beginners/thread365561.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2015, 17:53
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Double сокращение с точность до N знаков - C/C++ (C++):

Точность в N знаков после запятой числа типа double
Добрый день, уважаемы форумчане! Возникла проблема, заключающаяся в изменении...

Количество знаков после запятой double, Long double
Есть число большой точности A. A=-1.768573656315270993281...

Точность в double
Добрый день Мне задали сделать проект в универе - Калькулятор с великой...

Сокращение числа типа double
В качестве базового класса реализовать класс Triad (тройка) для хранения...

Точность.Тип double
Вопрос такой. Пишу программу, в которой имеется цикл: double t=0, dt =...

5
zss
Модератор
Эксперт С++
6953 / 6515 / 4136
Регистрация: 18.12.2011
Сообщений: 17,193
Завершенные тесты: 1
06.11.2015, 18:05 #2
1. Умножаем n раз на 10
2. Берем целую часть
3. Делим n раз на 10
0
Kuzia domovenok
2209 / 1978 / 441
Регистрация: 25.03.2012
Сообщений: 6,944
Записей в блоге: 1
06.11.2015, 18:20 #3
Берём строку. Пишем в нее символ %. Затем пишем требуемое ограничение по знакам - короче, генерируем форматную строку для printf программно. Ну и делаем принты с нею!

Добавлено через 4 минуты
zss, довольно бесполезно говорить о каких-либо "знаках после запятой" для переменных с плавающей точкой float и double! У них по определению нет десятичных знаков, пока их не форматнули в текстовый вид при выводе на экран. Они хранятся в двоичном коде и имеют лишь двоичные разряды

Добавлено через 9 минут
Red_Pain,
C++
1
2
3
4
5
6
7
char format[20];
int digits;
double value=0.123456789;
printf("input length: ");
scanf("%d", &digits);
sprintf(format, "%%.%dlf", digits);
printf(format, value);
0
Байт
Эксперт C
17764 / 11789 / 2449
Регистрация: 24.12.2010
Сообщений: 23,710
06.11.2015, 19:17 #4
Лучший ответ Сообщение было отмечено Red_Pain как решение

Решение

C++
1
printf("%.*f", digits, value);
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Берём строку. Пишем в нее символ %. Затем пишем требуемое ограничение по знакам - короче, генерируем форматную строку для printf программно.
Все эти манипуляции, конечно, большое искусство. Но применение звездочки в формате все это делает само и значительно проще
2
castaway
Эксперт С++
4926 / 3033 / 453
Регистрация: 10.11.2010
Сообщений: 11,089
Записей в блоге: 10
Завершенные тесты: 1
06.11.2015, 19:52 #5
Цитата Сообщение от Red_Pain Посмотреть сообщение
Но я хочу чтобы количество знаков после запятой ты мог задать сам.
Что ты имеешь в виду? Через printf ты тоже задаёшь их сам.

Добавлено через 26 минут
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
zss, довольно бесполезно говорить о каких-либо "знаках после запятой" для переменных с плавающей точкой float и double! У них по определению нет десятичных знаков, ...
По определению может и нет, но округлить таким образом до двух знаков после запятой вполне реально. Этот метод очень простой и прекрасно работает.
0
Evg
Эксперт CАвтор FAQ
18938 / 6899 / 513
Регистрация: 30.03.2009
Сообщений: 19,437
Записей в блоге: 30
07.11.2015, 14:46 #6
На всякий случай
http://www.cyberforum.ru/blogs/18334/blog507.html
0
07.11.2015, 14:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2015, 14:46
Привет! Вот еще темы с решениями:

Точность типа double
Всем привет! У меня такой код,точность как видите страдает,так как мне нужно с...

Точность вычислений у double
Дана задача: "Определить, на сколько нулей заканчивается факториал числа n"....

Точность вычислений в double (Обрезание числа)
Здравствуйте! Дело в том, что мне необходимо выводить большие числа с большим...

точность возвращения функции long double
есть число a long double надо написать чтобы фунция возвращала число до 25...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru