Название: Странное округление вещественной операции Отправлено: alik от Июнь 19, 2016, 14:08 Всем добрый день.
Столкнулся с непонятной для меня штукой: когда пишу так float res = (10 * 360)/36000; компилятор показывает, что res = 0 когда пишу так float res = (10 * 360); res = res/36000; компилятор показывает, что res = 0.1 Что это за чудеса или я чего то не незнаю про комплиятор C++ ? Название: Re: Странное округление вещественной операции Отправлено: kai666_73 от Июнь 19, 2016, 14:25 Попробуйте так:
float res = (10 * 360)/36000.0; Просто в Си (и в C++) есть операции целочисленного деления/умножения и вещественного... Название: Re: Странное округление вещественной операции Отправлено: kambala от Июнь 19, 2016, 14:31 да, выше все правильно сказали: если все операнды целочисленные, то и результат будет целочисленным
Название: Re: Странное округление вещественной операции Отправлено: alik от Июнь 19, 2016, 14:48 Попробуйте так: float res = (10 * 360)/36000.0; Просто в Си (и в C++) есть операции целочисленного деления/умножения и вещественного... Помогло, спасибо! Название: Re: Странное округление вещественной операции Отправлено: Igors от Июнь 19, 2016, 15:04 да, выше все правильно сказали: если все операнды целочисленные, то и результат будет целочисленным Ну целочисленные разные бываютКод Как объяснить рез-т? Название: Re: Странное округление вещественной операции Отправлено: kambala от Июнь 19, 2016, 15:06 теперь надо про переполнение и неявные приведения рассказывать? :)
Название: Re: Странное округление вещественной операции Отправлено: Igors от Июнь 19, 2016, 15:38 теперь надо про переполнение и неявные приведения рассказывать? :) А почему нет? Товарищам новичкам будет интересно :)Название: Re: Странное округление вещественной операции Отправлено: kambala от Июнь 19, 2016, 16:44 товарищи пусть язык изучают ;)
Название: Re: Странное округление вещественной операции Отправлено: ssoft от Июнь 19, 2016, 18:03 Что это за чудеса или я чего то не незнаю про комплиятор C++ ? Не знаете про язык С++, компилятор не при чем. Типы участвовавшие в операциях целые => результат целый. Переменной res присваивается уже результат операций. Название: Re: Странное округление вещественной операции Отправлено: Igors от Июнь 20, 2016, 11:10 Не знаете про язык С++, компилятор не при чем. Так-то оно так, но от Вас я ожидал более глубокого объяснения чем "целый/нецелый".Типы участвовавшие в операциях целые => результат целый. Переменной res присваивается уже результат операций. Еще примерчик для любознательных (которых пока не видно) Код И уж совсем неприличный :) Код
|