Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
3 / 3 / 0
Регистрация: 04.04.2015
Сообщений: 124
1

Почему после 51-го знака после запятой выводятся одни нули?

26.11.2015, 19:35. Показов 616. Ответов 3
Метки нет (Все метки)

В продолжение темы:

тот же код, только с увеличенным количеством знаков после запятой:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
system("cls");
double b;
int a1 = 22;
int a2 = 7;
b = static_cast<double>(a1) / a2;
cout.precision(53);
cout.setf(std::ios::fixed);
cout << b << endl;
return 0;
}
За 51-м знаком после запятой выставляются одни нули.

Чем это объясняется? Можно ли как-то обойти данное "обнуление"?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2015, 19:35
Ответы с готовыми решениями:

Как сделать так чтобы в паскале после знака запятой оставалось только 4 знака?
Как сделать так чтобы в паскале после знака запятой оставалось только 4 знака? Например число...

нули после запятой
Остаток на начало месяца Сумма всех элементов взимается этого клиента в этом месяце Сумма всех...

Округление до 25-го знака после запятой
Граждане, помогите с округлением до 25-го знака после запятой в Питоне, пожалуйста) Вот сама...

Рассчет до 4-го знака после запятой
Извинеите за беспокойство, подскажите как сделать так, чтобы рассчет в Mathcad велся не до третьего...

3
Модератор
Эксперт С++
11323 / 9299 / 5579
Регистрация: 18.12.2011
Сообщений: 24,803
26.11.2015, 19:44 2
А с чего Вы решили, что у double имеется 53 значащих цифры?
По-моему их всего 17.
0
2623 / 2208 / 237
Регистрация: 03.07.2012
Сообщений: 7,988
Записей в блоге: 1
26.11.2015, 19:47 3
Данные в double хранятся с определенной конечной точностью.
0
Evg
Эксперт CАвтор FAQ
21204 / 8220 / 633
Регистрация: 30.03.2009
Сообщений: 22,542
Записей в блоге: 30
26.11.2015, 22:47 4
У double мантисса имеет размер 52 бита (двоичных). Т.е. точность представления должна быть порядка 1/(2^52) по отношению к порядку. Влом считать, сколько это будет в десятичной системе, но примерно в районе 1/10^48. Число примерно равно 1/3, т.е. порядок примерно -2, т.е. вместо 48 должно быть что-то в районе 49-50 десятичных цифр
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2015, 22:47

2 знака после запятой и не только
Здравствуйте форумчане 1)есть вопросик по поводу приведения результата выполнения кода в божеский...

Два знака после запятой
Столкнулся с такой проблемой может у кого было. Вообщем суть такова есть 3 поля (1 поле тип данных:...

Округление, 2 знака после запятой
Привет всем. Помогите сделать округление на 2 цифры после запятой. В общем, нашел в сети вариант...

Три знака после запятой
Здравствуйте! Имеется код для нахождения СЛАУ методом Крамера Нужно чтобы при введении с...


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

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

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