Что делать, если rtos выдает “не те” результаты
Сегодня возник вопрос - насколько можно доверять результатам rtos? Когда разобрались, попросили нарисовать статейку. Выполняем
Казалось бы - а в чем вопрос-то? Ан нет, в разных файлах можно получить разное поведение:
1 2 3 4 5 | (rtos 0.5 2 6) "0.5000000" "0.5" ".5000000" ".5" |
Это как понимать? А все верно, результат rtos зависит от значения системной переменной DIMZIN.
В качестве иллюстрации
1 2 3 4 5 6 7 8 9 | (defun t1 (/ value) (setq sys (getvar "dimzin")) (foreach value '(0 1 2 3 4 8 12) (setvar "dimzin" value) (princ (strcat "\n" (itoa value) " => " (rtos 0.5 2 6))) ) ;_ end of foreach (setvar "dimzin" sys) (princ) ) ;_ end of defun |
И результаты:
1 2 3 4 5 6 7 8 9 | _$ (t1) 0 => 0.500000 1 => 0.500000 2 => 0.500000 3 => 0.500000 4 => .500000 8 => 0.5 12 => .5 |
Соответственно, играясь с DIMZIN, можно добиться от rtos нормального предсказуемого поведения.