Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 04.02.2013
Сообщений: 12
1

Маленькая мантисса long double

04.02.2013, 00:28. Показов 2881. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
здрасте. Я использую pow (long double, long double) и не смотря на это, меня не удовлетворяет точность (не более 5ти знаков после запятой). А нужно как раз-таки 6. Есть ли какое-то простое решение? Спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2013, 00:28
Ответы с готовыми решениями:

Чем различаются long long и long double?
long long или long double

Порядок и мантисса параметра типа double
Задача из Страуструпа функция печатающая порядок и мантиссу параметра типа double Ну...

Почему перестает работать программа при замене double на long double?
Здравствуйте! Прошу помощи чтобы разобраться в следующем вопросе: Нашел программу в интернете,...

long double и double в MSVC 12 одно и тоже, нужна информация,желательно быстрей
Здравствуйте все знают что в VC long double и double одно и тоже, да и при простой проверке это...

3
390 / 365 / 111
Регистрация: 03.02.2013
Сообщений: 1,120
04.02.2013, 02:06 2
есть, например манипулятор setprecision из <iomanip>


C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <iomanip>
 
int main()
{
    double i = 0.112312312;
    using namespace std;
    cout << i << endl;
    cout << setprecision(10) << i << endl;
}
сей код вернёт вторым выводом 9 знаков полсе запятой double
есть аналогичный не манипулятор cout.precision
замечу, что просто cout.precision() вернёт текущую точность, которую в хорошем стиле хорошо бы сохранить в переменную, а потом вернуть назад в cout

так что хороший стиль будет
C++
1
2
3
4
5
6
7
int main()
{
   double i = 0.112312312;
    using namespace std;
   streamsize prec = cout.precision();
    cout << setprecision(10) << i << setprecision(prec)  << endl;
}
где вместо "10" в setprecision(10) пишите желаемое 7 (ибо если вам надо 6 знаков - то пишите 7)
а манипуплятор setprecision(prec) вернёт старую точность потоку назад)

можно обойтись и без манипуляторов просто
C++
1
2
3
 streamsize prec = cout.precision(7); // для точности 6 знаков после запятой
 cout << i << endl;
 сout.precision(prec);
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
04.02.2013, 02:10 3
C++
1
2
3
4
   double i = 232.112312312;
    using namespace std;
   streamsize prec = cout.precision();
    cout << setprecision(10) << i << setprecision(prec)  << endl;
а так только 7 знаков выводит после запятой
а если
C++
1
double i = 235662.112312312;
то вообще только 4

Добавлено через 1 минуту
может так попробовать?
C++
1
cout << std::fixed <<setprecision(10) << i << setprecision(prec)  << endl;
0
390 / 365 / 111
Регистрация: 03.02.2013
Сообщений: 1,120
04.02.2013, 02:30 4
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
2
3
4
   double i = 232.112312312;
    using namespace std;
   streamsize prec = cout.precision();
    cout << setprecision(10) << i << setprecision(prec)  << endl;
а так только 7 знаков выводит после запятой
а если
C++
1
double i = 235662.112312312;
то вообще только 4

Добавлено через 1 минуту
может так попробовать?
C++
1
cout << std::fixed <<setprecision(10) << i << setprecision(prec)  << endl;
ну там же манипулятор выдаёт не цифры после запятой, а только количество цифр, пишите c_count(trunc(c))+p, где p - желаемое число цифер после запятой, я думаю автору этой инфы хватит по горло
попробуйте так, я не против )
0
04.02.2013, 02:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.02.2013, 02:30
Помогаю со студенческими работами здесь

Вывести long double число без перевода в double
Надо вывести long double число без перевода в double. Пишу: printf(&quot;%Lf&quot;,S); и выводится неверно....

Количество знаков после запятой double, Long double
Есть число большой точности A. A=-1.768573656315270993281 742915329544712934120053405549882...

Double, int , long double
Как вычислить диапазоны типов вручную указанных в название темы?

Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в степень p
Требуется написать функцию long long pow(long long a, unsigned int p), которая возводит число a в...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru