[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*Subject*: Re: comparing numbers using WHERE doesn't work*From*: Paul Woodford <cpwoodford(at)spamcop.net>*Date*: Sat, 02 Jun 2001 17:10:59 -0400*Newsgroups*: comp.lang.idl-pvwave*Organization*: Posted via Supernews, http://www.supernews.com*Posted-And-Mailed*: yes*References*: <9fbduu$ojm$1@uni00nw.unity.ncsu.edu>*User-Agent*: MT-NewsWatcher/3.1 (PPC)*Xref*: news.doit.wisc.edu comp.lang.idl-pvwave:25192

In article <9fbduu$ojm$1@uni00nw.unity.ncsu.edu>, "Miklos Z. Kiss" <mzkiss@unity.ncsu.edu> wrote: > I have noticed a strange occurence when I try to compare a number with > all the elements of an array. I'll show my situation in an example. > Consider the following array: > a = [2.0000, 2.1000, 2.2000, 2.3000, 2.4000, 2.5000, 2.6000]. > Let, x = 2.2000, y = 2.4000 > So, I want to find which elements of a match up with x and y. > Naturally, I do the following: > > index0 = WHERE(a EQ x) I don't know if this is the problem, but using EQ to compare floating point numbers is generally not a good idea. A better way to compare would be WHERE(abs(a-x) LT 2*epsilon), where epsilon is the floating point precision returned by machar(). Paul

**References**:**comparing numbers using WHERE doesn't work***From:*Miklos Z. Kiss

- Prev by Date:
**comparing numbers using WHERE doesn't work** - Next by Date:
**Re: comparing numbers using WHERE doesn't work** - Prev by thread:
**comparing numbers using WHERE doesn't work** - Next by thread:
**Re: comparing numbers using WHERE doesn't work** - Index(es):