NaN return

I am using a method ‘distance_to’ from a lib returning a distance in
Float type based on latitude/longitude

@ proposals.each  do | proposal |
    cd = proposal.distance_to(current_city)
    @d = cd  if (@d <=> cd) > 0
  end

a problem arise when the proposal latitude/longitude are equivalent to
current_city latitude/longitude
in this case it returns NaN (and not 0.0… don’t know why…)
if I don’t modify the lib script, how I can get bypass this results
(obviously I don’t care about 0.0 distance)

something like…
cd = proposal.distance_to(current_city) != NaN ?
proposal.distance_to(current_city) : 0.0

On 3/31/07, Josselin [email protected] wrote:

something like…
cd = proposal.distance_to(current_city) != NaN ?
proposal.distance_to(current_city) : 0.0

Float has a ‘nan?’ method
(class Float - RDoc Documentation).

On 2007-03-31 16:43:58 +0200, “Luis P.” [email protected]
said:

On 3/31/07, Josselin [email protected] wrote:

something like…
cd = proposal.distance_to(current_city) != NaN ?
proposal.distance_to(current_city) : 0.0

Float has a ‘nan?’ method
(class Float - RDoc Documentation).

thanks, I got it to test and replace cd : cd = 0.0 if cd.nan?

Float comparison is quite strange :
cd = 0.0
=> 0.0

irb(main):010:0> d = 0.197314075476553
=> 0.197314075476553

irb(main):011:0> (cd <=> d) > 0
=> false

BUT …

irb(main):006:0> cd = 0.693524996891893
=> 0.693524996891893

irb(main):007:0> d = 0.197314075476553
=> 0.197314075476553

irb(main):008:0> (cd <=> d) > 0
=> true

so 0.693524996891893 seems to be greater than 0.197314075476553 ???

On 3/31/07, Josselin [email protected] wrote:

so 0.693524996891893 seems to be greater than 0.197314075476553 ???

0.693524996891893 IS greater than 0.197314075476553 !!

On 2007-03-31 17:38:11 +0200, “Luis P.” [email protected]
said:

On 3/31/07, Josselin [email protected] wrote:

so 0.693524996891893 seems to be greater than 0.197314075476553 ???

0.693524996891893 IS greater than 0.197314075476553 !!

As I discover it few times after my post, I spent sometime away in a
ruby-church requiring forgiveness for my silly question… I also
bought new glasses ;-))) before coming back crawling on the ground and
raising my hands on the keyboard

thanks ;-)))

joss

so 0.693524996891893 seems to be greater than 0.197314075476553 ???

becasue 0.6 is greater than 0.1 !

On 3/31/07, Josselin [email protected] wrote:

thanks, I got it to test and replace cd : cd = 0.0 if cd.nan?

so 0.693524996891893 seems to be greater than 0.197314075476553 ???


Husein C.,
CEO, CTO
Yucca Intelligence Development

We make the web a better place!