On Sat, Jan 2, 2021 at 11:10 PM Aaron Hill <lilyp...@hillvisions.com> wrote:
> 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 >