;文字列 "x" を 倍精度実数値 double-float に変換する (defun to_f (x) (if (equal x nil) (setq x "0")) (if (listp x) (mapcar #'to_f x) (progn (if (typep x 'double-float) x (progn (if (stringp x) nil (setq x (write-to-string x))) (if (search "e" x) (progn (setq s (search "e" x)) (read-from-string (concatenate 'string (subseq x 0 s) "d" (subseq x (+ 1 s) (length x))) ) ) ;progn (search "e" x) (if (search "d" x) x (read-from-string (concatenate 'string x "d0") ) ) ) ) ;progn (typep x 'double-float) ) ) ;progn (listp x) ) )