Показать сообщение отдельно
Старый 03.04.2018, 12:00   #11
Arsie
Сотрудник Segnetics
 
Аватара для Arsie
 
Регистрация: Jan 2006
Адрес: Russia, SPb
Сообщения: 18 117
Благодарил(а): 15 раз(а)
Поблагодарили: 660 раз(а) в 604 сообщениях
По умолчанию Ответ: WAD-AO-BUS и SMH-2Gi - странности.

Цитата:
Сообщение от igor_kvik Посмотреть сообщение
Очень давно заметил (как первый раз стал работать с Лоджиком) то что Вы описываете - САМ(!) Лоджик некоторые дробные числа представляет с отниманием очень малой доли, то есть 2.6 представляет как 2.599999. Это было всегда! Сколько я помню Ваш программный продукт. Может кто-то что-то недоговаривает? Арсений сможет объяснить такие моменты с преобразованием?
Моменты объяснены в книжках по программированию и описании самого стандарта IEEE-754.

Если коротко, то в числах с плавающей точностью нет такого понятия, как "круглое число".

Любые числа, которые вы видите, типа 2.6 или 0.1 - это ложь. 32-хбитное число всегда содержит 6 знаков вокруг запятой. Т.е. 0.1 это всегда либо 0.1000(1) или 0.0999(9). До 0.1 его округляют средства отображения на экране.

Лоджик практически не занимается таким округлением, поэтому вы видите правду. 2.59999 - это округление исходного числа 2.599998(9).

И последнее. Это всё никак не связано с проблемой, поднятой в этой теме. Лично моё мнение, что проблема в WAD. Логи это либо подтвердят, либо опровергнут. Но всё говорит за то, что с формулами проблемы какие-то.


__________________
Программа делает то что написал программист, а не то что он хотел.

Добро всегда побеждает зло. Кто победил - тот и добрый.
Arsie вне форума   Ответить с цитированием