Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 18

Проблемы с выводом определенного кол-ва цифр после запятой

11.12.2019, 23:27. Показов 5282. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем салют, не могу понять, в чем проблема. Имеется такой код:
C++
1
2
3
4
5
6
7
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    cout  << setprecision(10) << -0.9090909091 << endl << -5.7943617197 << endl;
}
Вывод:
C++
1
2
-0.9090909091
-5.79436172
Почему выводится различное число цифр после запятой? Как это работает?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2019, 23:27
Ответы с готовыми решениями:

Вывод определённого кол-ва знаков после запятой в структуре!
Ребята,передо мной была поставлена задача,которую я решил,но теперь вот у меня возник вопрос! вот прога по структурам,которую я написал: ...

Управление кол-вом цифр после запятой в StringGrid
Скажите, как управлять кол-вом цифр после запятой в ячейке компонента StringGrid?

Ввод в поле TextBox :цифр,одной запятой и трех цифр после запятой
Добрый день. На форме размещен TextBox в который разрешен ввод :цифр ,запятая. У меня вопрос как запретить :ввод второй запятой и разрешить...

25
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 18
12.12.2019, 16:12  [ТС]
Студворк — интернет-сервис помощи студентам
zss, учту.
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.12.2019, 22:14
Gramdel, это уже перебор специальная функция не нужна, как и не нужно применять eps для сравнения с нулём чисел, введённых с клавиатуры (ноль введённый с клавиатуры - это чётко ноль). алгоритм стал не очень - сначала вычисляете D, затем корень из D, а если D<0 ? Вам нужно было внести корректировки только в строки 18 и 30 кода из сообщения №5
0
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 18
12.12.2019, 22:47  [ТС]
Yetty, c 0 как раз-таки нужно Вы сами писали. Ну вот пусть будет d=0.000000000093 для полного квадрата, тогда он не будет равен 0 и программа работать не будет. Насчет х1 и х2 согласен, перебор, просто эти формулы глаза мозолили и усложняли чтение кода. Я эти переменные еще вчера добавлял, когда программа без eps была, а сегодня почему-то не задумался про d<0
0
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 18
12.12.2019, 22:59  [ТС]
Yetty, кстати, эти автотесты опять шалят, либо я чего-то не понимаю. Та же история, у меня в VS работает, на сайте тесты не идут. Но тут вроде нигде даблов нет, есть, конечно, деление, но только целых на целые.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <vector>
#include <string>
using namespace std;
 
int main()
{
    long long n, osn;
    string str;
    while (getline(cin, str))
    {
        n = 0;
        osn = 0;
        int f = 0;
 
            for (int i = 0; i < str.length(); i++)
            {
                if (str[i] == ' ')
                {
                    f = i;
                    break;
                }
 
            }
 
            for (int i = 0; i < f; i++)
            {
                n += pow(10, f - 1 - i)*(str[i] - '0');
            }
            for (int i = f + 1; i < str.length(); i++)
            {
                osn += pow(10, str.length() - 1 - i)*(str[i] - '0');
            }
            
            vector<long long>result;
 
            if ((n == 0) || (n == 1))
            {
                cout << n;
            }
            else {
                do
                {
                    result.push_back(n%osn);
                    n /= osn;
                    if (n == 1)
                    {
                        result.push_back(1);
                        break;
                    }
                    if (n < osn)
                    {
                        result.push_back(n);
                        break;
                    }
                } while ((n / osn >= 1) || (n >= osn));
 
                while(result.back() == 0)
                {
                    result.pop_back();
                }
                for (int i = result.size() - 1; i >= 0; i--)
                {
                    if (result[i] <= 9)
                    {
                        cout << result[i];
                    }
                    else {
                        cout << char(int('A') + result[i] - 10);
                    }
                }
            }
 
            str.clear();
            cout << endl;
    }
    
    system("pause");
}
Должна переводить число из 10-ой в любую систему счисления (от 2 до 36, если не ошибаюсь). Считывание тут бесконечное, т.к. там неизвестное число тестов, а ввод идет в консоль из файла (не знаю, можно ли так сказать, но... надеюсь понятно, о чем я), число до 10^18. Тесты прикрепил. Методом научного тыка выяснено, что не идут тесты для ввода 5 5 и 9199734562176041 11.
Миниатюры
Проблемы с выводом определенного кол-ва цифр после запятой  
0
7438 / 5030 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.12.2019, 23:52
Gramdel, Вы путаете ситуации, когда ноль получен в результате вычислений и ноль введён с клавиатуры, ещё раз
Цитата Сообщение от Yetty Посмотреть сообщение
не нужно применять eps для сравнения с нулём чисел, введённых с клавиатуры (ноль введённый с клавиатуры - это чётко ноль)

для новой задачи создайте новую тему
0
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 18
13.12.2019, 00:10  [ТС]
Yetty, так и сделаю. Просто были сомнения, не такая ли там ситуация, как в задаче с уравнением.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.12.2019, 00:10

Как изменить кол-во отображаемых знаков после запятой?
Приветствую. В рантайме создаю поля ... Mem2.FieldDefs.Add('rashodo',ftFloat,0,False); ... в таблице заведена цифра 12,4000, а...

FloatToStr, сокращение, учет кол-ва знаков после запятой
Есть Label1, хочу в него положить число. Value какое нибудь. Можно написать так: Label1.Caption := FloatToStr(Value); Тогда в него...

Задать кол-во знаков после запятой (StringGrid(Delphi))
procedure TForm1.Button1Click(Sender: TObject); var a,b,c:integer; begin a:=0; b:=0; c:=0; a:=a+StrToInt(StringGrid1.Cells); ...

Обрезать (не округлить) число до определенного знака после запятой
подскажите как обрезать число до определённого знака - не округлить, а обрезать. 1.555666 в итоге чтобы получить 1.555 что-то с trunc?

Сравнение элементов матрицы до определенного знака после запятой
Можно ли сравнивать элементы матрицы до определенного знака после запятой? Как лучше это реализовать. Нужно создавать цикл посимвольного...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru