Любопытно, если в С++ сравнивать таким образом числа с меньшей точностью, float, то всё хорошо, если же сравнивать в даблах, то всё валится.
Показать скрытый текст
В этой ситуации оба числа равны 3.29999995
Код:
float x = 1.1 * 3;
float y = 3.3;
printf("%lf %lf\n", x, y);
if(x == y)
{
printf("%lf\n", y * 3);
}
Показать скрытый текст
Здесь же x равен 3.3000...03, а y равен 3.2999...98
Код:
double x = 1.1 * 3;
double y = 3.3;
printf("%lf %lf\n", x, y);
if(x == y)
{
printf("%lf\n", y * 3);
}