Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/190: Рейтинг темы: голосов - 190, средняя оценка - 4.80
1113 / 716 / 122
Регистрация: 12.10.2013
Сообщений: 4,852
1

Количество знаков после запятой double, Long double

23.03.2018, 12:55. Показов 38383. Ответов 7
Метки нет (Все метки)

Есть число большой точности A.
A=-1.768573656315270993281
742915329544712934120053405549882
337511135282776553364635382011977
933536332198647808795874576643230
034448609820608458844529169083285
379260833581131961323480667495949
838043253626912240448884745364662
8324959064543;

Какой тип переменных вмещает их как константы? Сколько можно чисел после запятой?
Количество знаков после запятой double, Long double

Double 308 знаков после запятой?
Long double 4932?
Не ругается максимум на 125 символов после запятой для double в компиляторе Visual Stdio 2008 , где еще половина?

Какое самое малое число можно разделить на 1000 не превышая точность Long double?
Рисую фракталы, мне нужна точность. Процессор 32 bit.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.03.2018, 12:55
Ответы с готовыми решениями:

Какая функция определяет количество знаков после запятой переменной double?
У меня есть программа, которая считает сумму ряда, в неё вводится значение x, точность, с которой...

Подсчет знаков после запятой в переменной double
Не получается, так как в double числа хранятся не точно, и на моменте, когда i == 3345333, d ==...

Как вывести double до 2 знаков после запятой?
Нужно вывести число до 2 знаков после запятой. Попробовал так: 1) round(a*100)/100; 2) ...

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

7
Модератор
Эксперт С++
11063 / 9123 / 5482
Регистрация: 18.12.2011
Сообщений: 24,392
23.03.2018, 18:42 2
Цитирую MS:
DBL_MAX 1.7976931348623158e+308 Maximum value
Как видите, всего 16 знаков после запятой.
А 308 - это степенной показатель, т.е
1.7976931348623158*10308
Если нужно просто хранить такие числа, то пишите их в строковый массив, или в string.
А для вычислений нужно использовать специальные пакеты длинной арифметики.
0
1113 / 716 / 122
Регистрация: 12.10.2013
Сообщений: 4,852
23.03.2018, 19:25  [ТС] 3
Какие 16 знаков, остальное рандомный мусор? Как это? Зачем они тогда?
32 бит процессор это 4 байтный т.е. float его родной формат и тратит он наверно 1 такт.
float
-3.4*10^32 до +3.4 *10^32
32 знака после запятой а не 16.

double
-1.7*10^308 до +1.7*10^308
308 знака после запятой.
Т.е. вычисления возможны в этих диапазонах а не до 16 знаков после запятой.
Спец. либы для длинной арифметики это наверно для чисел больше long double 10 байт.
Где много тактов идет на например сложение двух чисел.
0
зомбяк
1532 / 1177 / 332
Регистрация: 14.05.2017
Сообщений: 3,822
23.03.2018, 20:09 4
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Какой тип переменных вмещает их как константы? Сколько можно чисел после запятой?
https://en.wikipedia.org/wiki/Long_double
An exception is Microsoft Visual C++ for x86, which makes long double a synonym for double.
Не поддерживает ваша Visual Studio тип long double, вместо него под его именем используется обычный double.

Добавлено через 6 минут
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Какие 16 знаков
Примерно 16 десятичных знаков.
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Есть число большой точности A
Нужна либа, которая понимает и длинную арифметику, и плавающую точку. Потому что обычно длинная арифметика пишется для целых чисел (т.е. нет динамически меняющегося степенного множителя).
0
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
23.03.2018, 20:14 5
Excalibur921, тебе же сказали, что это не количество знаков, а степень. Просвещайся, как вещественный формат устроен. Тебе long double не поможет с такими длинными числами.
0
1113 / 716 / 122
Регистрация: 12.10.2013
Сообщений: 4,852
23.03.2018, 20:24  [ТС] 6
TRam_,
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Какие 16 знаков, остальное рандомный мусор? Как это? Зачем они тогда?
Причем тут 16 знаков вообще? Так я могу считать числа если два заданы до 25 и 27 знака? Если ответ входит в диапазон double то все ок? А если нет? Будет INF предупреждение или что то такое?

Цитата Сообщение от TRam_ Посмотреть сообщение
место него под его именем используется обычный double.
Что это за развод такой хитрый… или из-за Express в названии? Pro версия поддерживает?
0
6992 / 6030 / 2738
Регистрация: 14.04.2014
Сообщений: 25,792
23.03.2018, 20:29 7
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Pro версия поддерживает?
Нет. Это особенность компилятора Microsoft. У long double 19-20 значащих цифр. Не намного больше.
1
зомбяк
1532 / 1177 / 332
Регистрация: 14.05.2017
Сообщений: 3,822
23.03.2018, 20:51 8
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Так я могу считать числа если два заданы до 25 и 27 знака?
Нет. Они просто не зададутся и округлятся до того, что вмещается в число. Если скомпилируются, конечно.

А в первом посте у тебя вообще-то около 220-250 значащих цифр. То есть ~ в 10 раз больше, чем есть в long double даже там, где он полностью поддерживается.

Добавлено через 2 минуты
Цитата Сообщение от Excalibur921 Посмотреть сообщение
Будет INF предупреждение или что то такое?
Никаких предупреждений. Просто округление при задании в переменную и при выполнении арифметических операций.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.03.2018, 20:51

Как отображать у double больше знаков после запятой?
Что-то забыл как это сделать :(

исправьте ошибку!округлить double до 2-х знаков после запятой
округлять,не используя math.h #include "stdafx.h" #include <stdio.h> int main () { double...

Сколько Знаков после запятой имеет тип double и почему при выводе они отбрасываются
Здравствуйте! Написал функцию по расчету квадратного корня от числа. Функция работает...

Тип double и количество символов после запятой
Здравствуйте, уважаемые я дико нуб, поэтому помогите чем можете ) суть такова: тип переменной...


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

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

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