取消
显示结果 
搜索替代 
您的意思是: 

Return a wrong compare result

已解决!
转到解答
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 项奖励
1 条消息(共 21 条)
5,072 次查看

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 项奖励
2 条消息(共 21 条)
5,066 次查看
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 项奖励
3 条消息(共 21 条)
5,049 次查看
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 项奖励
4 条消息(共 21 条)
5,040 次查看

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 项奖励
5 条消息(共 21 条)
5,023 次查看

The ting to discuss is how I get rid of unwanted accuracy or precision because 12.1100000000001 are not equal 12.11 眨眼表情.



Besides which, my opinion is that Express VIs Carthage must be destroyed deleted
(Sorry no Labview "brag list" so far)
0 项奖励
6 条消息(共 21 条)
5,022 次查看
This has been discussed quite bit in this thread.
0 项奖励
7 条消息(共 21 条)
5,015 次查看

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 number极度高兴的表情

0 项奖励
8 条消息(共 21 条)
4,981 次查看

Hi,

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

0 项奖励
9 条消息(共 21 条)
4,978 次查看

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 项奖励
10 条消息(共 21 条)
4,965 次查看