frac



Frac в паскале

Автор Владимир Азупак задал вопрос в разделе Другие языки и технологии

Паскаль. Применение функции Frac : Почему 4.02/0.004=1005 (выводит сама программа, без всякой дробной части) , но нецелое и получил лучший ответ

Ответ от Капитан Гугл[гуру]
Все вычисления с плавающей запятой имеют определенную точность, поэтому нельзя сравнивать числа типа real обычным = (кроме тех случаев, когда нужно проверить точное равенство - например, скопировано ли число) ; надо делать так:
var eps;{погрешность обычно обозначают греческой буквой ε - эпсилон}
...
eps:=0.0001;
...
if abs(frac(n/b))< eps then ...
Ian
Мыслитель
(8645)
извиняюсь, но 2 и 0.5 легко представимы в двоичной системе, в отличие от 4.02 и 0.0004

Ответ от Ian[гуру]
Капитан прав, попробуй вывести еще строку writeln (frac(a/b)) - увидишь, что дробная часть ненулевая.
невозможно представить все десятичные числа с абсолютной точностью в двоичной системе.

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Паскаль. Применение функции Frac : Почему 4.02/0.004=1005 (выводит сама программа, без всякой дробной части) , но нецелое
Фрак на Википедии
Посмотрите статью на википедии про Фрак
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*