![]() |
Число знаков после запятой в С++
в консольной программе в переменной - double р; отображается только 14 знаков после запятой:
cout<<setprecision(30)<<p<<endl; хотя задано 30 Как отобразить больше 14 знаков после запятой и возможно ли это? И вообще сколько знаков после запятой у данной переменной может быть? |
double
Значащие знаки 15-16 Занимает памяти 8 байт памяти long double Значащие знаки 19-20 Занимает памяти 10 байт памяти Для прикола, недостающие 15 знаков можно заполнить случайными цифрами :) . Будет выглядеть круто. |
Цитата:
|
один хрен что long, что ни long отображается 14 знаков после запятой
|
насколько мне помнится, в С/С++ подобные вещи отданы на усмотрение разработчиков компилятора - так что может быть и 10 байт с 20 знаками, и 100 байт с 2000 знаками :)
надо смотреть в каждом случае конкретный компилятор/платформу |
а как допустим число Пи считать до хрен знает какого знака......
|
Ну как, если ручками, то лучше всего воспользоваться методом Ньютона.
А чтобы реализовать в проге, придется из интов составить длинное число(массив), к которому ты будешь специфически обращаться, а потом интерпретировать, как вещественное число. |
Самый (простой) алгоритм вычисления PI
PI = 4 - (4/3) + (4/5) – (4/7) + (4/9) – (4/11) + (4/13) – (4/15) +..- .. Если сложить 1000000 значений этой последовательности можно получить 5 знаков после запятой . Дальше хуже новые знаки растут плохо. Существуют библиотеки 128-разрядных чисел 31-знак; Поищите в инете: 128-разрядные числа двойной точности числа с динамически изменяемой мантиссой числа |
| Часовой пояс GMT +4, время: 01:40. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.