diff --git a/lib/init-7.scm b/lib/init-7.scm index ff06791f..44fc0446 100644 --- a/lib/init-7.scm +++ b/lib/init-7.scm @@ -1056,14 +1056,14 @@ (if (ratio? x) (ratio-numerator x) (if (inexact? x) - (exact->inexact (ratio-numerator (inexact->exact x))) + (exact->inexact (numerator (inexact->exact x))) x))) (define (denominator x) (if (exact? x) (if (ratio? x) (ratio-denominator x) 1) (if (integer? x) - 1 - (exact->inexact (ratio-denominator (inexact->exact x))))))) + 1.0 + (exact->inexact (denominator (inexact->exact x))))))) (else (cond-expand (complex diff --git a/tests/r7rs-tests.scm b/tests/r7rs-tests.scm index cfbe4ca7..5435bb1a 100644 --- a/tests/r7rs-tests.scm +++ b/tests/r7rs-tests.scm @@ -676,6 +676,8 @@ (test 2.0 (denominator (inexact (/ 6 4)))) (test 11.0 (numerator 5.5)) (test 2.0 (denominator 5.5)) +(test 5.0 (numerator 5.0)) +(test 1.0 (denominator 5.0)) (test -5.0 (floor -4.3)) (test -4.0 (ceiling -4.3))