;; | --------------------------------------------------------------------------- ;; | MI_floor ;; | --------------------------------------------------------------------------- ;; | Function : Finds the floor values to the nearest multiple. ;; | Argument : Value - Value to be floored ;; | Mult - Multiple for flooring (integer) ;; | Return : The floored value ;; | Update : March 6, 1998 ;; | Comments : This function is designed for integer arguments only ;; | Handles negative numbers also ;; | e-mail : rakesh.rao@4d-technologies.com ;; | Web : www.4d-technologies.com ;; | --------------------------------------------------------------------------- (defun MI_floor(val mult / sign) (setq val (fix val)) (if (not (zerop val)) (setq sign (/ val (abs val))) (setq sign 1.0) ) (setq val (abs val) mult (abs (fix mult)) ) (if (> (rem val mult) 0) (progn (if (minusp sign) (setq val (+ (* (/ val mult) mult) mult)) (setq val (* (/ val mult) mult)) ) )) (* val sign) )