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: вычисление корня заменить ничем нельзя (нахождение гипотенузы)
Please enter comments
Please enter your name.
Please enter the correct email address.
You must agree before submitting.

Copyright © 2024 SCHOLAR.TIPS - All rights reserved.