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)) - увидишь, что дробная часть ненулевая.
невозможно представить все десятичные числа с абсолютной точностью в двоичной системе.
Капитан прав, попробуй вывести еще строку writeln (frac(a/b)) - увидишь, что дробная часть ненулевая.
невозможно представить все десятичные числа с абсолютной точностью в двоичной системе.
Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Паскаль. Применение функции Frac : Почему 4.02/0.004=1005 (выводит сама программа, без всякой дробной части) , но нецелое
Что такое давление?
Давле́ние (P) — физическая величина, равная силе F, действующей на единицу площади поверхности
подробнее...
спросили в Randomness
Как решить задачи в Паскале?
Uses crt;
Var i :integer;
M :array[1..12] of integer;
Function
подробнее...
Как решить задачи в Паскале?
Uses crt;
Var i :integer;
M :array[1..12] of integer;
Function
подробнее...
Paskal. Как округлять числа в паскале?
Frac Дробная часть числа с плавающей запятой
Int Целая часть числа с плавающей точкой
подробнее...
Паскаль. Есть дробь, например 12,15 - нужно выделить целую часть в паскале.
Round(12.75) = 13 Округление чисел с плавающей запятой до целого числа
Trunc(12.75) = 12
подробнее...
спросили в Free Pascal
PASCAL - Мне необходимо округлить число в большую сторону
> то результат равен 0,02. а мне нужно любой результат округлять в большую сторону
Т. е.
подробнее...
PASCAL - Мне необходимо округлить число в большую сторону
> то результат равен 0,02. а мне нужно любой результат округлять в большую сторону
Т. е.
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
Задача о 8 ферзях. паскаль
Забей все значения статически, чтобы каждый раз их не пересчитывать, и просто меняй их при нажатии
подробнее...
Вопросы на тему Паскаля, помогите
...
3. не существует операторов ввода/вывода данных (функции и процедуры к операторам не
подробнее...