Показать сообщение отдельно
иксуй!
Аватар для иксуй!
Сообщения: 9,553
Регистрация: 23.11.2007
Старый пост, нажмите что бы добавить к себе блог 12 декабря 2011, 19:35
  #1737 (ПС)
Любопытно, если в С++ сравнивать таким образом числа с меньшей точностью, 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);
    }

offline
Ответить с цитированием