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

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

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

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

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

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

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

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

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

5
zss
Модератор
Эксперт С++
7102 / 6630 / 4199
Регистрация: 18.12.2011
Сообщений: 17,490
Завершенные тесты: 1
06.11.2015, 18:05 #2
1. Умножаем n раз на 10
2. Берем целую часть
3. Делим n раз на 10
0
Kuzia domovenok
2264 / 2033 / 459
Регистрация: 25.03.2012
Сообщений: 7,200
Записей в блоге: 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
18107 / 11962 / 2485
Регистрация: 24.12.2010
Сообщений: 24,092
06.11.2015, 19:17 #4
Лучший ответ Сообщение было отмечено Red_Pain как решение

Решение

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

Добавлено через 26 минут
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
zss, довольно бесполезно говорить о каких-либо "знаках после запятой" для переменных с плавающей точкой float и double! У них по определению нет десятичных знаков, ...
По определению может и нет, но округлить таким образом до двух знаков после запятой вполне реально. Этот метод очень простой и прекрасно работает.
0
Evg
Эксперт CАвтор FAQ
19283 / 7140 / 528
Регистрация: 30.03.2009
Сообщений: 19,986
Записей в блоге: 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 t=0, dt =...

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

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


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

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

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