Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2013, 14:07   #1
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию Вещественные числа

Доброго дня!
Вопрос №1:
Код:
cout<<10/3;
int val = 3.3;
всегда ли, в подобных ситуациях, получаемый результат будет округлен до ближайшего наименьшего целого (3 в данном случаи)? Можно ли полагаться на это свойство? Использовать floor() для гарантий как-то дороговато.

Вопрос №2:
иногда, в операциях с вещественными числами их значения искажаются (нельзя полностью записать результат от 10/3). Я понимаю искажение в меньшую сторону (не хватило разрядов в памяти компьютера), но откуда берутся искажения в большую (если память не врет, где-то видел)?
220Volt вне форума Ответить с цитированием
Старый 15.01.2013, 14:32   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

1. да
2. в младших разрядах может быть мусор
rrrFer вне форума Ответить с цитированием
Старый 15.01.2013, 14:47   #3
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

1. Не могли бы уточнить (если известно) – гарантировано ли стандартами?
220Volt вне форума Ответить с цитированием
Старый 15.01.2013, 14:53   #4
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
cout<<10/3;
int/int = int - это целочисленное деление на 3.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 15.01.2013, 14:55   #5
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

1. Согласно C99/C++11, округляется к нулю, как trunc, а не как floor.
-3 / 2 == trunc(-3.0 / 2) == -1
floor(-3.0 / 2) == -2
Somebody вне форума Ответить с цитированием
Старый 15.01.2013, 15:02   #6
220Volt
Форумчанин
 
Регистрация: 14.12.2012
Сообщений: 668
По умолчанию

Спасибо, вроде бы мелочь, но уверенности не было, теперь есть на что полагаться.
220Volt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вещественные числа в с++ sergey123 Помощь студентам 0 03.01.2013 00:31
C# Вещественные числа SL1CK Общие вопросы .NET 5 15.02.2012 10:56
вещественные числа(pascal) phasha Помощь студентам 3 19.09.2011 12:40
Вещественные числа. Посчитать порядок числа (Pascal) Черепаwка Помощь студентам 0 18.05.2011 13:31
Вещественные числа! .::HroNik::. Общие вопросы C/C++ 1 28.11.2010 00:42