[racket] HTDP 2nd edition exercise 4.2.3 - floating point issues
;; equation3 : number -> boolean
;; to determine whether n is a solution for 2n^2 = 102
(define (equation3 n)
(=~ (* 2 n n) 102 .001))
-- Matthias
On Oct 22, 2013, at 8:40 AM, Bo Gus <forumangus at gmail.com> wrote:
> equation 2 is 2n^2 = 102 so I implement like this:
>
> ;; equation3 : number -> boolean
> ;; to determine whether n is a solution for 2n^2 = 102
> (define (equation3 n)
> (= (* 2 n n) 102))
>
> And my answer is the same as per the online answer. so great.
>
> But how can I check a valid answer.
>
> Eg if I do:
>
> (equation3 (sqrt 51))
> >false
>
> same using - square root 51.
>
> How can I fix this? Is the only way to do a range check? Eg have some sort of tolerance - eg between 0.01 above and below answer? Any other ideas?
>
> ____________________
> Racket Users list:
> http://lists.racket-lang.org/users