Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Bazan
22 / 22 / 0
Регистрация: 15.04.2009
Сообщений: 100
#1

Округление Long double. - C++

11.11.2010, 20:31. Просмотров 1433. Ответов 4
Метки нет (Все метки)

Нужно округлить число типа long double в меньшую сторону т.е. просто обнулить всю дробную часть, но при этом надо сохранить эту самую дробную часть в другую переменную. Ничего похожего гугл не нашел.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.11.2010, 20:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Округление Long double. (C++):

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

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

Вывести long double число без перевода в double - C++
Надо вывести long double число без перевода в double. Пишу: printf("%Lf",S); и выводится неверно. Компилятор -- MinGW, та же фишка на...

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

Long Double - C++
Разве нет типа более емкого, чем Double в Visual studio? Long Double, как я понял, определяется как обычный Double. А мне нужен аналог по...

Округление double - C++
Короче ввожу число 1.05 в Debug показывает его, как 1.004999999999999999995663191310058 вот как эту чушь убрать, у меня задача из-за...

4
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
11.11.2010, 20:39 #2
Плохо искали.
modf
Правда для LD в чистом Си не покатит. Приведите к double.
0
easybudda
Модератор
Эксперт CЭксперт С++
9693 / 5643 / 962
Регистрация: 25.07.2009
Сообщений: 10,848
11.11.2010, 20:42 #3
Bazan, по крайней мере в BSD системах (не поверите, но ничего другого, чтобы проверить, сейчас под рукой нет) есть функция
C
1
long double floorl(long double x);
которая собственно и отбрасывает дробную часть long double значения, то есть дробную часть можно получить так:
C
1
2
3
4
5
6
#include <math>
...
long double num;
// задать значение num
...
long double fract = (num - floorl(num));
1
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
11.11.2010, 20:46 #4
easybudda, А по стандарту Си только для double есть функция floor.
0
easybudda
Модератор
Эксперт CЭксперт С++
9693 / 5643 / 962
Регистрация: 25.07.2009
Сообщений: 10,848
11.11.2010, 20:53 #5
Цитата Сообщение от ForEveR Посмотреть сообщение
А по стандарту Си только для double есть функция floor.
это по ANSI C 89, а в ANSI C 99 есть и floorl()... У мелкомягких, которым C 99 не указ, наверняка свой какой-нибудь велосипед имеется...
2
11.11.2010, 20:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2010, 20:53
Привет! Вот еще темы с ответами:

Округление Double - C++
Использую Double, возникают при тонких расчетах проблемы с округлением. Какие есть стандартные способы решения? :)

Перевод из double в long - C++
Можно ли как-то перевести число double в 2 числа long так, чтобы одно число было его целой частью, а другое дробной?

Long double и Borland 3.1 - C++
обнаружено на процессоре 486SX с Borland 3.1, на нем экспонента считается до 4932, далее ошибка overflow DosBox+ core i7 на win7х64 +...

long double и char - C++
Товарищи, помогите чайнику разобраться в данном теоретическом вопросе: long double* m=95; m--; m=? char* t=2; t-=4; t=?


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

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

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