LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Return a wrong compare result

Solved!
Go to solution
Hi, I tried to compare two value between a number and pi. The probes show that I have the same value but the VI equal compare return False.
0 Kudos
Message 1 of 21
(3,433 Views)

pi is represented to about 15 decimal places in LabVIEW. The probe is showing only 5. There is more than likely a difference between the two numbers, but you need to see more decimal places to be sure. Try wiring the two values to indicators on your front panel that show more decimal places and inspecting them.

Also, see http://digital.ni.com/public.nsf/allkb/AF5DC9D469B3917186256ACD0051D4E7

Thoric (CLA, CLED, CTD and LabVIEW Champion)


0 Kudos
Message 2 of 21
(3,427 Views)
This has nothing to do with how many significant digits Pi has, and everything to do with how you cannot use the Equal operation on floating point numbers. This is not a bug, but a numeric reality because of how floating point numbers are stored in a computer. This questions comes up about once a month.
0 Kudos
Message 3 of 21
(3,410 Views)
smercurion - does this not amount to the same thing? The values will not match due to the fact, in all reality, they are not the same, and are very unlikely to ever be the same? Thang will never get a true from the comparator because of this reason, and directing him to inspect a greater number of decimal places will highlight the difference between the two values.
Thoric (CLA, CLED, CTD and LabVIEW Champion)


0 Kudos
Message 4 of 21
(3,401 Views)

Thank you guys.

As I guessed, I have a not exactly number I want. I decided to use a customize compare VI with difference after 6 precision digits.

 

Have a happy holiday.

Thang Nguyen

0 Kudos
Message 5 of 21
(3,384 Views)

The ting to discuss is how I get rid of unwanted accuracy or precision because 12.1100000000001 are not equal 12.11 Smiley Wink.



Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
(Sorry no Labview "brag list" so far)
0 Kudos
Message 6 of 21
(3,383 Views)
This has been discussed quite bit in this thread.
0 Kudos
Message 7 of 21
(3,376 Views)

Thoric wrote:
smercurion - does this not amount to the same thing?

Depends on your viewpoint. Essentially, yes, but it's due to the fundamental way that numbers are stored, and nothing to do with Pi, or how many significant digits there are. The same thing would happen with any other floating point number. 

 

Besides, the purists would argue that you can never check if a number is equal to Pi since Pi is a transcendental numberSmiley Very Happy

0 Kudos
Message 8 of 21
(3,342 Views)

Hi,

I really have trouble with this, cause sin(pi) is not 0. It will affect to many calculation results.

0 Kudos
Message 9 of 21
(3,339 Views)

Sin (pi) is smaller than machine epsilon, which means that it is effectively zero.

 

As has been stated above,  equality comparisons with non-integer representations of numbers will always be problematic.  Several little VIs have been posted which address this issue in a variety of ways, mostly by doing inequality comparisons with a small limit range usingthe machine epsilon or user selected value.

 

Lynn 

0 Kudos
Message 10 of 21
(3,326 Views)