Я новичок в программировании, поэтому, пожалуйста, ответьте простым языком. Я пытаюсь напечатать двойной. Программа попросит пользователя ввести столько цифр пи, сколько он помнит, а затем он должен отпечатать его обратно. Но он всегда отпечатывает 6 знаков после запятой. Мне это нужно, чтобы напечатать количество десятичных знаков, которые изначально были положить в. Так 3.14 в десятичные, а 3,141592654 равно 9. так печатает то, что положили.Печать десятичных знаков в C++
ответ
Вам необходимо сочетание std::fixed с последующим std::precision
Как это:
double f =3.14159;
std::cout << std::fixed;
std::cout << std::setprecision(5) << f << '\n'; // prints 5 decimals
std::cout << std::setprecision(9) << f << '\n'; // prints 9 decimals
что теперь перейти к std::setprecision()
, как должна рассчитываться из входного вы получаете аргумент.
Я не понимаю, как это было рассмотрено четыре раза, так как это явно не отвечает на вопрос ... «Мне нужно, чтобы он напечатал количество десятичных знаков, которые были первоначально введены» - ваше решение явно не " это сделать ... – leemes
Номера - это номера, а не строки. Они имеют фактическую точность, определяемую их типом (float
, double
и т. Д.).
Вы не можете «запомнить» исходную логическую точность, если вы не принимаете ввод как строку, подсчитайте точность самостоятельно, , затем конвертировать в число.
Затем вы используете параметры форматирования для воспроизведения этого уровня точности на выходе.
В качестве альтернативы, просто придерживайтесь строками.
Только для этого конкретного случая (сравнивая, насколько точным был введенный pi), используйте std::string
, а не двойной. Если кто-то, кто знает пару тысяч цифр, использует вашу программу, переменная с плавающей запятой с двойной точностью не будет достаточно точной для сравнения. Вам также нужно будет сохранить ссылку pi как строку.
Кстати, при таком подходе вам больше не придется запоминать, сколько десятичных знаков было введено.
Возможно, вам потребуется изучить различия между десятичными и двоичными представлениями чисел.
Ваш пользователь вводит десятичное представление, т.е. каждый символ представляет собой цифру от 0 до 9.
С другой стороны, двойное является двоичным представлением.
Некоторые числа могут быть выражены десятичным представлением, но не эквивалентны в двоичном представлении. Например, вы не можете выразить 0.3 с конечным числом двоичных символов.
Вот почему вы должны хранить свой ввод как десятичный, например, используя строку.
- 1. Печать произвольной точности десятичных знаков в python
- 2. Печать нулей после десятичных знаков в excel
- 3. Печать правильного количества десятичных знаков? (printf) - JAVA
- 4. Предотвращать делать десятичных знаков
- 5. C# Предел левых десятичных знаков
- 6. C++ печать двух знаков
- 7. печать целых чисел в виде символов, десятичных знаков, поплавков
- 8. C/C++ подсчет числа десятичных знаков?
- 9. Округление десятичных знаков до двух знаков после запятой в C#
- 10. Сравнение двух десятичных знаков
- 11. Печать фиксированных десятичных знаков с использованием errs() в llvm
- 12. Игнорирование десятичных знаков в VB
- 13. Замена десятичных знаков
- 14. wkhtmltopdf процент десятичных знаков
- 15. Округление десятичных знаков Python
- 16. Круглое число десятичных знаков
- 17. SQL число десятичных знаков
- 18. Изменение числа десятичных знаков
- 19. MySQL: Хранение десятичных знаков?
- 20. Regex заменить десятичных знаков
- 21. результат десятичных знаков javascript
- 22. Получить длину десятичных знаков
- 23. C# DataGridView ячейка не допускает десятичных знаков
- 24. Не получая никаких десятичных знаков Цель-C
- 25. C# формат двойной п десятичных знаков точности
- 26. C# - круглые числа до 0 десятичных знаков
- 27. Обнаружение десятичных знаков в vim
- 28. Сравнение десятичных знаков в PHP
- 29. Повторение десятичных знаков в PHP
- 30. Учет десятичных знаков в поплавке
Пожалуйста, разместите свой код и пример ввода и вывода. – MC93
Почему это помечено тегом [tag: c]? Где ваш код? –
'C' и' C++ '- это разные языки с различными соображениями ввода и вывода. На кого вас интересует? – abelenky