NI Ürünleri İle İlgili Tartışmalar

cancel
Showing results for 
Search instead for 
Did you mean: 

Equal? problemi

Solved!
Go to solution

Böyle bir şeyin olması mümkün müdür? true göndermesi gerekirken false gönderiyor ve işlem sonsuza kadar devam ediyor. Nasıl bir çözüm önerirsiniz.z.png

0 Kudos
Message 1 of 5
(5,454 Views)
Solution
Accepted by topic author ahva

Böyle birşey olması tabiki mümkündür. Çünkü Double Sayılar bilgisayar üzerinde binary fraction olacak şekilde ifade edilirler.

 

Normalde 0.3 sayısı=3/10 demektir.

 

Fakat Binary Fraction olarak ise 0.3= 1/4 + 1/32 +1/64+... şeklinde tanımlanır ve buda 0.3 sayısına tam eşit olmaz.

 

Bu nedenle sizin tam eşit olma durumunu değil ">=" (büyük eşit) durumunu kullanmanız sorununuzu çözecektir diye düşünüyorum...

 

Saygılarımla...

Himmet GENCER
Software Development Coordinator at TDG
himmetgencer@gmail.com

View Himmet Gencer's profile on LinkedIn

View on Instagram
0 Kudos
Message 2 of 5
(5,445 Views)

Himmet Bey'in yorumu doğru.

 

Yine de 5e-6 olarak gözüken lokal değişkenlere ait indikatörlerdeki gerçek değerleri "Floating Point" gösterim seçildiğinde görmek isterdim.

Uygulama tarafında illaki eşitlik kullanılması gerekiyorsa, floor vb. fonksiyonlarla iki değişkeni de sizin için anlamlı basamak sayısın indirgeyip çalışmak bir yöntem olabilir.

 

Kolaylıklar dilerim.

(Bay) Candan CANER
National Instruments Türkiye
Message 3 of 5
(5,442 Views)
Aynı durum C tabanlı LabWindows için de geçerli.
Benim oradaki çözümüm (ille de eşitlik durumunu denetlemem gerekiyorsa) sayıyı dilediğim ondalık seviyesine kadar round/trancate edip sonra string halinde karşılaştırma yapmak.
Örneğin x = 3/5 = 0.666666 ise bunu mesela noktadan sonra 3 basamağa yuvarlayıp string'e çevirip sonra string comparison fonksiyonları ile denetliyorum.
S. Eren BALCI
IMESTEK
Message 4 of 5
(5,439 Views)

Labviewi bu forum sayesinde fazlasıyla geliştireceğime inanıyorum. Herkese yardımlarından dolayı çok teşekkür ederim. 

Kolay gelsin.

0 Kudos
Message 5 of 5
(5,408 Views)