Тема: "усовершенствование" itoa и rtos
может пригодиться любителям астрономии :)
(vl-load-com)
хорошая вещь - vlax-make-variant
(defun vk_ItoA (Int) (vlax-variant-value (vlax-make-variant (fix Int) vlax-vbString)) )
больше чем (vk_ItoA 999999999999999) получить не удается
для сравнения максимум (itoa 2147483647)
(defun vk_RtoS (InReal Precision / Frac FracInt FracPow Int Minus) (if (minusp InReal) (setq InReal (abs InReal) Minus t ) ) (setq Int (fix InReal) Frac (- InReal Int -1) FracPow (* Frac (expt 10. Precision)) FracInt (fix FracPow) ) (if (>= (- FracPow FracInt) 0.5) (setq FracInt (1+ FracInt)) ) (strcat (if Minus "-" "" ) (if (zerop Precision) (vk_ItoA (+ Int FracInt -1)) (strcat (vk_ItoA Int) "." (substr (vk_ItoA FracInt) 2)) ) ) )
больше чем (vk_RtoS 999999999999999 14) получить не удется
для сравнения максимум (RtoS 999999999999999 2 0)