Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
1 / 1 / 1
Регистрация: 12.11.2013
Сообщений: 11

Вывести long double число без перевода в double

25.01.2014, 21:57. Показов 3951. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Надо вывести long double число без перевода в double. Пишу:
C++
1
printf("%Lf",S);
и выводится неверно. Компилятор -- MinGW, та же фишка на VS работала. Что же делать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.01.2014, 21:57
Ответы с готовыми решениями:

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

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

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

17
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.01.2014, 22:01
А если добавить "-D__USE_MINGW_ANSI_STDIO" к опциям компиляции ?
0
1 / 1 / 1
Регистрация: 12.11.2013
Сообщений: 11
25.01.2014, 22:12  [ТС]
Не помогает.
То же самое:
warning: unknown conversion type character 'L' in format
0
128 / 126 / 60
Регистрация: 22.01.2014
Сообщений: 464
25.01.2014, 22:22
На gcc дожно было сработать.
А вот так вы не пробывали?
C++
1
2
    long double S=3.14;
    cout<<"S:"<<S;
0
1 / 1 / 1
Регистрация: 12.11.2013
Сообщений: 11
25.01.2014, 22:26  [ТС]
Нет, там надо с определённой точностью, чего iostream, вроде бы, не может.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.01.2014, 22:32
Цитата Сообщение от HEDO4EJIOBEK Посмотреть сообщение
чего iostream, вроде бы, не может.
а разве precision - это не то?

Добавлено через 1 минуту
http://www.cplusplus.com/refer... precision/
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
25.01.2014, 22:40
Не в курсе, форматная строка принтф разве не требует именно строчные буквы %lf ?
А для потоков iostream надо использовать setprecision.
0
1 / 1 / 1
Регистрация: 12.11.2013
Сообщений: 11
25.01.2014, 22:41  [ТС]
Нет, совсем не то. Если поставить, например, на 7, то при выводе «444.4444444», то выведется «444.4444», а нужно фиксированное количество знаков после запятой.
0
 Аватар для gromo
383 / 281 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
25.01.2014, 22:43
Цитата Сообщение от HEDO4EJIOBEK Посмотреть сообщение
Нет, совсем не то. Если поставить, например, на 7, то при выводе <<444.4444444>>, то выведется <<444.4444>>, а нужно фиксированное количество знаков после запятой.
Перед этим нужно применить манипулятор std::fixed
C++
1
2
std::cout.precision(4);
    std::cout << std::fixed << 3.3333333333 << std::endl;
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
25.01.2014, 22:45
printf("%.7lf", ...
0
1 / 1 / 1
Регистрация: 12.11.2013
Сообщений: 11
25.01.2014, 22:46  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Не в курсе, форматная строка принтф разве не требует именно строчные буквы %lf ?
Нет, по крайней мере, в MinGW для long double требуется именно «%Lf».
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
А для потоков iostream надо использовать setprecision.
Нет, совсем не то. Если поставить, например, на 7, то при выводе «444.4444444», то выведется «444.4444», а нужно фиксированное количество знаков после запятой[2].
0
 Аватар для gromo
383 / 281 / 31
Регистрация: 04.09.2009
Сообщений: 1,225
25.01.2014, 22:47
Цитата Сообщение от HEDO4EJIOBEK Посмотреть сообщение
чего iostream, вроде бы, не может.
да иострим и не такое может, уж поверьте
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
25.01.2014, 22:48
Kuzia domovenok, не везде, как видите.. http://stackoverflow.com/quest... ong-double
From the printf manpage:

l (ell) A following integer conversion corresponds to a long int or unsigned long int argument, or a following n conversion corresponds to a pointer to a long int argument, or a following c conversion corresponds to a wint_t argument, or a following s conversion corresponds to a pointer to wchar_t argument.

and

L A following a, A, e, E, f, F, g, or G conversion corresponds to a long double argument. (C99 allows %LF, but SUSv2 does not.)

So, you want %Le , not %le
...........
Yes -- for long double, you need to use %Lf (i.e., upper-case 'L').
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
25.01.2014, 23:14
KOPOJI, мда, и где тут логика? Зачем делать l для длинных целых, а L для длинных даблов? Неужели реализация printf не поймёт, что, увидев в форматной строке %l, надо просто проверить следующий символ: lf или ld, чтобы определить тип аргумента!
0
25.01.2014, 23:15

Не по теме:

Kuzia domovenok, а я же откуда знаю, где тут логика.. Спросите у разрабов MinGW..

0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
26.01.2014, 15:02
HEDO4EJIOBEK, для полноты картины приведи всю программу и результат исполнения

На всякий случай соответствие printf'ов и cout'ов
https://www.cyberforum.ru/blogs/18334/blog507.html
1
1 / 1 / 1
Регистрация: 12.11.2013
Сообщений: 11
26.01.2014, 18:27  [ТС]
Всем спасибо, теперь всё ясно. Только с printf()ом не разобрался -- так и не хочет выводить long double.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
26.01.2014, 18:48
Цитата Сообщение от HEDO4EJIOBEK Посмотреть сообщение
Только с printf()ом не разобрался -- так и не хочет выводить long double
Я же говорю - покажи на всякий случай всю программу. Мало ли ты ошибаешься. До кучи ещё исполни такую программу:

C
printf ("%ld\n", sizeof(double));
printf ("%ld\n", sizeof(long double));
а то мало ли на твоём компиляторе long double эквивалентен double'у (такое бывает)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.01.2014, 18:48
Помогаю со студенческими работами здесь

Ошибки error C2296: -: недопустимо, левый операнд имеет тип "double (__cdecl *)(double,double,double
Думаю из-за polp #include&lt;iostream&gt; #include&lt;cmath&gt; #include&lt;cstdlib&gt; using namespace std; double polp(double af,double...

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

Ошибка: error LNK2001: unresolved external symbol "double __cdecl Akk(double,double,double)"
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; double Akk(double x, double y, double z); int main() { int a, b, c; ...

Преобразовать 2 числа int в 1 число float(double) | double int1.int2
Всем привет. Изучая азы C++, столкнулся с такой проблемой. Есть два значения типа int, их необходимо преобразовать в одно значение типа...

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


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru