# [racket] HTDP 2nd edition exercise 4.2.3 - floating point issues

Hi BoGus,
fwiw, this exercise is NOT in HTDP 2nd edition but HTDP 1st edition, 1-4th printing.
Just in case you really want to work through HtDP 2e.
-- Matthias
On Oct 22, 2013, at 8:53 AM, Matthias Felleisen <matthias at ccs.neu.edu> wrote:
>*
*>* ;; 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
*>*
*>*
*>* ____________________
*>* Racket Users list:
*>* http://lists.racket-lang.org/users
*