![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
S.A.G. |
|
||||||||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Значит так, имеем код, он ВЫПОЛНЯЕТ нужную задачу - начиная с 13 по 19 место заполняет массив числом 10000.0..:
Но почему вот такой код НЕ приносит желаемый результат:
Или может следует даже вот так записать, чтобы сравнивать плавающие типы с одинаковой точностью(?):
Я всегда знал, что если:
, то i будет равно 2. Но если имеем выражение (i / 2), разве оно не должно быть типа double = 2.5 по стандарту??? А то пришлось явно приводить i к float перед делением! Это сообщение отредактировал(а) S.A.G. - 27.3.2008, 09:41 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
||||||||
|
|||||||||
korian |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 3 Всего: 17 |
если целое делиться на целое - результат целое
решение: надо один из типов перевести в float
Это сообщение отредактировал(а) korian - 27.3.2008, 09:50 |
|||
|
||||
S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Я думал, что это проявляется только при присвоении переменной целого типа значения типа не целого. Но в выражениях!.. Добавлено через 10 минут и 2 секунды Но тогда можно не заморачиваться и просто записать проверку на парность:
Тут double сравнивается с double? Числовые плавающие константы в С, я знаю, имеют тип double, а в С++ тоже так? -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
||||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Что-то я не пойму - это ты так четность проверяешь?
-------------------- ... |
|||
|
||||
S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Вот этим(?):
Ну да. Добавлено через 32 секунды ? -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
Sleepless |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 30.1.2008 Репутация: нет Всего: нет |
||||
|
||||
inside_pointer |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 9.3.2008 Репутация: 5 Всего: 12 |
Чтобы i само привелось к double надо поставить 2.0, результат тоже будет double, и j даже если оно целое, в операции сравнения с этим результатом тоже должно преобразоваться в double. А при делении i / 2 если i целое, то 2 к double не приводится, и результат соответственно тоже не получается как double, а идёт как int, у которого нет дробной части. |
|||
|
||||
S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Sleepless, мой метод тоже подходит.
![]() -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
угу, только если так писать то в конце концов разгневанный человек ,смотрящий твой код, придет к тебе ночью с холодным оружием.. |
|||
|
||||
Sleepless |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 30.1.2008 Репутация: нет Всего: нет |
||||
|
||||
S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Sleepless, ага, может не совпасть на 0.00000001 или около того. Вобщем, забыл я такой простой оператор - целочисленное деление.
![]() -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Да, для шифрования кода. ![]() S.A.G., настоящие C-программеры проверяют четность так: i&1 ![]() Хотя, конечно, нынче компиляторы из i%2 делают то же самое... -------------------- ... |
|||
|
||||
S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Earnest, i&1?
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
S.A.G., i&1 - проверка младшего бита. вспомни, что числа у нас в двоичной системе, каждый разряд кратен степени двойки. потому вот...
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |