Fix conversion from float to rational

This commit is contained in:
notoria
2025-02-28 08:00:00 +01:00
parent a0e3283d64
commit 4f3843742c

View File

@@ -534,7 +534,7 @@ pub fn rational_from_number(
match n { match n {
Number::Fixnum(n) => Ok(arena_alloc!(Rational::from(n.get_num()), arena)), Number::Fixnum(n) => Ok(arena_alloc!(Rational::from(n.get_num()), arena)),
Number::Rational(r) => Ok(r), Number::Rational(r) => Ok(r),
Number::Float(OrderedFloat(f)) => match Rational::simplest_from_f64(f) { Number::Float(OrderedFloat(f)) => match Rational::try_from(f).ok() {
Some(r) => Ok(arena_alloc!(r, arena)), Some(r) => Ok(arena_alloc!(r, arena)),
None => Err(Box::new(move |machine_st| { None => Err(Box::new(move |machine_st| {
let instantiation_error = machine_st.instantiation_error(); let instantiation_error = machine_st.instantiation_error();