• PascalABC.NET

    Вот кусочек программки:

    // x=3.1 (введено с клавиатуры)
    // y=0.8 (введено с клавиатуры)
    // p=2 (рассчитано программой выше)

    a:=Frac(x); // =0,1
    b:=Frac(y)-0.5; // =0,3
    kp:=sqrt(sqr(0.5-a)+b*b); // =0,5
    if kp>=0.5 then p:=p+1;

    и вот тут компьютер почему-то считает, что kp<0,5
    т.е. при выводе на экран, - выводится значение kp=0.5, но при сравнении с 0,5 оно оказывается меньше.
    Перепробовала все, что смогла придумать. Даже сравнивала kp с корнем из 0.25 (чем оно и является). Безрезультатно.

    Мне нужны конкретные ответы на вопросы:
    1) Почему переменная, равная 0,5, меньше, чем 0,5?!
    2) Как это можно исправить?

    Заранее спасибо.

    PS: вычисление корня заменить ничем нельзя (нахождение гипотенузы)

Ответы 2

  • Спасибо! Все наглядно и понятно.
  • Пожалуйста
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years