Евгений Темиргалеев
спасибо, но вывод я использовал просто для иллюстрации, как внутри алгоритма округлять и сравнивать со значениями...
попробовал присвоить r:=8.2; в выводе все равно получил 8.199999999, значит ошибка не из-за вычислений(82/10), а из-за того что это число в принципе не может храниться точно... поэтому нет функций округлений для переменных тк все равно будет хранить 8.19999999?
и как действовать в случае если выводить на форму? преобразовывать r в строку через Strings.RealToStringForm(r,16,0,-2," ",s) и выводить в строковое поле?

> -- Trurl писал(а):
> Только в данном случае не поможет.Проблема ведь в том, что получаются числа непредставимые в виде степеней двойки.То, что получается в эйфеле и c#, очевидно, ввязано с разными вариантами округления при выводе.
т.е. и в др языках просто функция вывода округляет, а внутри переменные такие же?...

а где можно поподробнее про это все почитать? чем это чревато на практике? или просто при выводе округлять, а так коллизий давать не должно? а если над такими числами произведены пара операций ошибки не накопятся?