Round towards the nearest legal value. If the current value is exactly half way between two legal values round towards 0.
(defun round-half-down (number &optional (precision *precision*)) "Round towards the nearest legal value. If the current value is exactly half way between two legal values round towards 0." (multiple-value-bind (value discarded) (floor number) (if (< 1/2 discarded) (/ (1+ value) precision) (/ value precision))))Source Context