В паскале абс с этим делом что-то странное.
Код "программы":
var
r:real;
s:single;
begin
r:=random;
s:=r;
writeln(r,' ',s);
r:=s;
writeln(r,' ',s);
end.
На выходе:
0.897930570830559 0.8979306
0.897930562496185 0.8979306
Вопрос - как происходит такое преобразование?
Примечание:
>>Обычное округление
Но 1) 0.89793057 > 0.8979306 2) 0.89793056.... и внезапно откуда-то берется 2496185
Примечание:
Окей, с 1) Я был невнимателен. Там действительно обычное округление.
Примечание:
---------------------------
Как 0.897930_6 превращается в 0.897930_562496185 ?
Примечание:
<<1. Отмеряй 9,993 кг.>>
Это не математика.
<<2. Возьми 9,9999...>>
Тут слишком просто.
<<разные системы исчисления не равнозначны>>
А вот это дискуссионный вопрос, да.....
<<Этой точности хватает на хранение одной двестипятидесятимиллионной доли числа>>
Вообще-то там до 1.4∙10^-45
<<число просто немного изменилось>>
Это весьма исчерпывающее описание процесса преобразований.
<<встречал ведь кривые углы у текстур, которые необходимо сглаживать? - это именно из-за неточного вычисления ради производительности>>
На самом деле, нет. Эта проблема векторной графики возникает по аппаратным причинам. На вики хорошая статья. Почитайте, ага.
---------------------------
Хороший ответ, энциклопедичный, но мимо. Ответив на (не поставленный) вопрос, "почему", вы, к сожалению, не сказали "как".
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.