| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Арифметические действия с переменными |
| Автор: VAZik 22.8.2005, 13:43 | ||||
| Уважаемые господа программеры! Может быть я вам покажусь беспросветным ламерюгой, но почему BCB 6.0 удачно компилирует следующее
а в следующей записи переменная a просто остается равной нулю.
Объясните мне, пожалуйста!!! |
| Автор: Dark Elf 22.8.2005, 13:56 | ||
Потому что в Билдере 6 надо делать так :
|
| Автор: _hunter 22.8.2005, 13:57 |
| потому как ты к инту результат приводиш. пиши 1.0/(y1 - y2); |
| Автор: monax 22.8.2005, 15:47 | ||
Dark Elf и _hunter, какие-то страшные вещи рассказываете.
Этот код прекрасно работает и выводит 0.5. VAZik, а какой результат у действия y1 - y2? Может там что-то настолько большое, что результату от деления не хватает места в double, т.е. там получается маленькое число, которое в машине округляется до нуля. |
| Автор: maxim1000 22.8.2005, 15:52 | ||||
этот - да но есть сильное подозрение, что у автора вопроса другой, например, такой:
|
| Автор: VAZik 23.8.2005, 06:44 | ||
Всем спасибо за советы. В результате получилось рабочее выражение
monax, с выражением y1-y2 все нормально. Скорее всего проблема действительно была в неявном преобразовании типов. |
| Автор: VAZik 23.8.2005, 07:16 | ||||
Еще вопрос. А с выражением типа
что делать? Все x и y - int, а a - float. Сразу скажу что-то типа
писать не очень хочется. |
| Автор: VAZik 23.8.2005, 07:32 |
| Последний вопрос - мой затуп. Все нормально компилируется и так. |
| Автор: Дрон 23.8.2005, 12:58 | ||||
Если всё компилируется, это ещё не значит, что будет правильно работать. Напиши хотя бы так:
Этого будет достаточно. |