annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Return a wrong compare result

Résolu !
Accéder à la 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 Compliments
Message 1 sur 21
4 861 Visites

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 Compliments
Message 2 sur 21
4 855 Visites
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 Compliments
Message 3 sur 21
4 838 Visites
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 Compliments
Message 4 sur 21
4 829 Visites

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 Compliments
Message 5 sur 21
4 812 Visites

The ting to discuss is how I get rid of unwanted accuracy or precision because 12.1100000000001 are not equal 12.11 Smiley clignant de l'œil.



Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
(Sorry no Labview "brag list" so far)
0 Compliments
Message 6 sur 21
4 811 Visites
This has been discussed quite bit in this thread.
0 Compliments
Message 7 sur 21
4 804 Visites

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 très heureux

0 Compliments
Message 8 sur 21
4 770 Visites

Hi,

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

0 Compliments
Message 9 sur 21
4 767 Visites

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 Compliments
Message 10 sur 21
4 754 Visites