| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > деление |
| Автор: Bogdan1024 23.7.2006, 16:36 |
| int c0 = 1; int c2 = 5; int c1 = 400 -231 + 1; double k = (c0/c2) * c1; Почему в итоге k == 0 хотя все числа тут явно != 0 ?? |
| Автор: Meeer 23.7.2006, 17:28 |
| потомучто у тебя переменная k типа double. А по правилу этот тип приведется к интеджеру, т.е. останется только целая часть - т.е. 0. Либо все переменные объяви как double, либо сделай вычисления в виде double. |
| Автор: Bogdan1024 23.7.2006, 17:32 |
| А что это за правило такое? Таки да, оказывается, нужно каждый множитель явно преобразовать в float. |
| Автор: Oleg_Ci 23.7.2006, 17:54 | ||
А так ?
|
| Автор: Любитель 23.7.2006, 20:43 |
Если в арифметической операции нет вещественных операндов, следовательно результат имеет тип int. |
| Автор: Meeer 23.7.2006, 21:46 |
| Bogdan1024, советую изучать С++ с книгой в руках, там много интерестных вещей написано! Крайне рекомендую! |
| Автор: Bogdan1024 23.7.2006, 22:35 |
| Спасибо всем! |