Помощь - Поиск - Пользователи - Календарь
Полная версия: Какая-то ошибка.
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
sheka
Как обычно, не знаю как назвать тему wacko.gif
Не мог в программе найти ошибку. Уже построчно проверял. Пришел к таким выводам: или при присвоении числу float числа int оно округляется, чего не может быть в теории, или не правильно printf выводит число float.
Проблема оказалась в том, что результат от таких действий 1/2 или 3/4 или 5/3 округлялся. Для получения правильного результата надо писать 1.0/2.0 и 3.0/4.0 и 5.0/3.0. Объясните, пожалуйста, в чем прикол такой записи и обязательно ли за этим следить?
volvo
Цитата
Объясните, пожалуйста, в чем прикол такой записи и обязательно ли за этим следить?
Прикол в том, что в С/С++ тип результата при делении совпадает с типом более емкого операнда (в отличие от Паскаля, где деление всегда возвращает вещественный результат). То есть, если ты с Сях делишь целое на целое - то в результате выполняется именно целочисленное деление, и частное тоже будет целым. Для того, чтобы получить вещественное число, достаточно привести либо делимое либо делитель к вещественному (оба сразу - можно, но не обязательно):

// можно так, задавая константы вещественного типа:
double res_1 = 1.0 / 2;
// можно - вот так (приведение типов в стиле С):
double res_2 = (double)1 / 2;
// можно сделать то же самое, но в стиле С++:
double res_3 = static_cast<double>(1) / 2;
buy azithromycin doxycycline onl
blue cross blue shield health cialis
gabriella
Your writings and news are really interesting to me. There are numerous advantages to the contents. Thank you so much. My site:: ole777 download
nishaknapp
Why not settling on games that is fun and at the same time your earning. Well itll make suspense because of the game as well but dude just try it and it gave me hope while pandemic is real rn. Things to Know As a Gambling Newbie
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.