On 2021-01-02 7:38 pm, Freeman Gilmore wrote:
> How do I change a rounded number (decimal number) to an integer?
> Example: (round 60.76) ==> 61.0 want ==> 61
inexact->exact will do that.
;;;;
(inexact->exact (round 60.76))
=> 61
;;;;
> For:
> #(define try (/ (round 60.76) 64))
> #(write try)
> ==> 0.953125
> Want
> ==> 61/64
inexact->exact can return a rational, although it will only generate a
dyadic rational, that is a rational with a power-of-two denominator.
Something like 1.2 will not return 6/5, for instance.
Aaron:
You may now something that may help. I have a denominator that is a power of 2 say 1024 i can not exceed 1024 but it can go smaller. I want the numerator to round to the closes 1/1024, Use this example 132.527/ 1024 => 133/1024
Thank you, ƒg
;;;;
(inexact->exact 0.5)
=> 1/2
(inexact->exact 1.2)
=> 5404319552844595/4503599627370496
;;;;
What you need to do is use a combination of rationalize and
inexact->exact:
;;;;
(rationalize (inexact->exact 1.2) 1/100)
=> 6/5
;;;;
-- Aaron Hill