@Dmi7ry, полагаю, уместно будет также оставить ссылку на хабр к ответу, так как именно на него будем ссылаться при возникновении вопросов-дубликатов.
– awesoonJul 09 '15 at 15:48
Я потерялся. Я в с++ совсем новичек. 1курс. Этот вопрос мне попал на экзамене . я на него так и не ответил. А ответ узнать хотелось бы.
– АлександрJul 09 '15 at 15:48
Вообще-то тут в этом вопросе есть серъезная и важная тонкость - смешение float и double типов в выражениях, которое в первую очередь и приводит к неожиданным результатам. Приликованный "дубликат" рассказывает об общих проблемах плавающей арифметики, но не затрагивает этой важной детали.
– AnT stands with RussiaJul 09 '15 at 16:53
Рассказы о том, что плавающие числа "нельзя сравнивать на равенство" - это все немножко не о том. В реальности язык С достаточно детерминистичен, чтобы давать некоторые гарантии. Например, вот такой код double f = 3.2; bool b = f == 3.2;обязан инциализировать b как true. А вот код float f = 3.2; bool b = f == 3.2; - не обязан. Это - ключевой момент, не освещенный по ссылке. А вы взяли и закрыли вопрос...
– AnT stands with RussiaJul 09 '15 at 16:57
floatиdoubleтипов в выражениях, которое в первую очередь и приводит к неожиданным результатам. Приликованный "дубликат" рассказывает об общих проблемах плавающей арифметики, но не затрагивает этой важной детали. – AnT stands with Russia Jul 09 '15 at 16:53double f = 3.2; bool b = f == 3.2;обязан инциализироватьbкакtrue. А вот кодfloat f = 3.2; bool b = f == 3.2;- не обязан. Это - ключевой момент, не освещенный по ссылке. А вы взяли и закрыли вопрос... – AnT stands with Russia Jul 09 '15 at 16:57