imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 02.06.2006, 09:43     # 1
ЛеднеFF
Junior Member
 
Регистрация: 01.04.2005
Сообщения: 121

ЛеднеFF Мелкий засранец
Число знаков после запятой в С++

в консольной программе в переменной - double р; отображается только 14 знаков после запятой:
cout<<setprecision(30)<<p<<endl;

хотя задано 30

Как отобразить больше 14 знаков после запятой и возможно ли это?
И вообще сколько знаков после запятой у данной переменной может быть?
ЛеднеFF вне форума  
Старый 02.06.2006, 10:33     # 2
MrSerg
Guest
 
Сообщения: n/a

double
Значащие знаки 15-16
Занимает памяти 8 байт памяти

long double
Значащие знаки 19-20
Занимает памяти 10 байт памяти

Для прикола, недостающие 15 знаков можно заполнить случайными цифрами .
Будет выглядеть круто.
 
Старый 02.06.2006, 10:37     # 3
gandalf_g
Junior Member
 
Регистрация: 09.12.2003
Адрес: Москва
Сообщения: 62

gandalf_g Путь к славе только начался
Цитата:
MrSerg:
long double
Значащие знаки 19-20
Занимает памяти 10 байт памяти
кстати так не везде, в MSDN сказано что long double same as double
__________________
не учите людей думать, они вам этого не простят...
gandalf_g вне форума  
Старый 02.06.2006, 10:43     # 4
ЛеднеFF
Junior Member
 
Регистрация: 01.04.2005
Сообщения: 121

ЛеднеFF Мелкий засранец
один хрен что long, что ни long отображается 14 знаков после запятой
ЛеднеFF вне форума  
Старый 02.06.2006, 10:52     # 5
BorLase
::VIP::
 
Аватар для BorLase
 
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150

BorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех ГуруBorLase Отец (мать) всех Гуру
насколько мне помнится, в С/С++ подобные вещи отданы на усмотрение разработчиков компилятора - так что может быть и 10 байт с 20 знаками, и 100 байт с 2000 знаками

надо смотреть в каждом случае конкретный компилятор/платформу
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people.
BorLase вне форума  
Старый 02.06.2006, 15:26     # 6
ЛеднеFF
Junior Member
 
Регистрация: 01.04.2005
Сообщения: 121

ЛеднеFF Мелкий засранец
а как допустим число Пи считать до хрен знает какого знака......
ЛеднеFF вне форума  
Старый 02.06.2006, 15:51     # 7
Kvarx
Member
 
Регистрация: 26.09.2005
Адрес: Питер
Сообщения: 336

Kvarx Известность не заставит себя ждатьKvarx Известность не заставит себя ждать
Ну как, если ручками, то лучше всего воспользоваться методом Ньютона.
А чтобы реализовать в проге, придется из интов составить длинное число(массив), к которому ты будешь специфически обращаться, а потом интерпретировать, как вещественное число.
Kvarx вне форума  
Старый 02.06.2006, 17:02     # 8
MrSerg
Guest
 
Сообщения: n/a

Самый (простой) алгоритм вычисления PI

PI = 4 - (4/3) + (4/5) – (4/7) + (4/9) – (4/11) + (4/13) – (4/15) +..- ..

Если сложить 1000000 значений этой последовательности можно получить 5 знаков после запятой .
Дальше хуже новые знаки растут плохо.


Существуют библиотеки 128-разрядных чисел 31-знак;
Поищите в инете:
128-разрядные числа двойной точности
числа с динамически изменяемой мантиссой числа
 

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 03:40.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.