![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
sheka |
![]() ![]()
Сообщение
#1
|
![]() Я. ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 809 Пол: Мужской Реальное имя: Саша Репутация: ![]() ![]() ![]() |
Как обычно, не знаю как назвать тему
![]() Не мог в программе найти ошибку. Уже построчно проверял. Пришел к таким выводам: или при присвоении числу float числа int оно округляется, чего не может быть в теории, или не правильно printf выводит число float. Проблема оказалась в том, что результат от таких действий 1/2 или 3/4 или 5/3 округлялся. Для получения правильного результата надо писать 1.0/2.0 и 3.0/4.0 и 5.0/3.0. Объясните, пожалуйста, в чем прикол такой записи и обязательно ли за этим следить? |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Объясните, пожалуйста, в чем прикол такой записи и обязательно ли за этим следить? Прикол в том, что в С/С++ тип результата при делении совпадает с типом более емкого операнда (в отличие от Паскаля, где деление всегда возвращает вещественный результат). То есть, если ты с Сях делишь целое на целое - то в результате выполняется именно целочисленное деление, и частное тоже будет целым. Для того, чтобы получить вещественное число, достаточно привести либо делимое либо делитель к вещественному (оба сразу - можно, но не обязательно):// можно так, задавая константы вещественного типа: |
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 15:56 |