Сообщество программистов Autodesk в СНГ

ADN Club => AutoLisp / VisualLISP и DCL => Тема начата: CrazyBullet от 12-08-2020, 09:11:29

Название: (= (/ 0.009 3) 0.003) -> nil
Отправлено: CrazyBullet от 12-08-2020, 09:11:29
Собственно вопрос в теме, а (= (/ 0.09 3) 0.03) -> T
Название: Re: (= (/ 0.009 3) 0.003) -> nil
Отправлено: Александр Ривилис от 12-08-2020, 10:50:03
CrazyBullet,
Так и должно быть. Плавающие числа (float/double) нельзя сравнивать на равенство.
Можно так:
Код - Auto/Visual Lisp [Выбрать]
  1. (equal (/ 0.009 3) 0.003 0.000001)
т.е. сравнение с заданной точностью
Интересно посмотреть на результат:
(https://live.staticflickr.com/65535/50217524356_a0f3ffd51a_o.png)