diff --git a/src/code/float.lisp b/src/code/float.lisp index 3ac65127eb3f78992e0647926c36007d30824033..4616fedf9041625d6390aee441daf0a9392484b8 100644 --- a/src/code/float.lisp +++ b/src/code/float.lisp @@ -1047,9 +1047,15 @@ (number-dispatch ((x real)) (((foreach single-float double-float #+long-float long-float - #+double-double double-double-float fixnum)) (coerce x ',type)) + #+double-double + ((double-double-float) + ;; Convert the double-double to a double before + ;; coercing to the appropriate type. + (coerce (+ (double-double-hi x) + (double-double-lo x)) + ',type)) ((bignum) (bignum-to-float x ',type)) ((ratio)