exponents in numbers always indicate inexactness per R5RS (indirectly fixes issue 34)

This commit is contained in:
Alex Shinn 2010-02-05 13:42:30 +09:00
parent 4020a1c1f6
commit 4dcfb8aa6b

5
sexp.c
View file

@ -1325,10 +1325,7 @@ sexp sexp_read_float_tail(sexp ctx, sexp in, double whole, int negp) {
} }
res = (whole + res) * pow(10, e); res = (whole + res) * pow(10, e);
if (negp) res *= -1; if (negp) res *= -1;
if ((scale == 0.1) && (exponent != SEXP_VOID) && (res == round(res))) return sexp_make_flonum(ctx, res);
return sexp_make_fixnum(res);
else
return sexp_make_flonum(ctx, res);
} }
sexp sexp_read_number(sexp ctx, sexp in, int base) { sexp sexp_read_number(sexp ctx, sexp in, int base) {