1. sayfa
Double değişkenlerle neden sorgu yapmaya çalışıyorum ama olmuyor mesela; string xx="30.55315392"; double x=convert.todouble(xx); if(x==30.55315392) { messagebox.show("DH"); } neden çalışmıyor :/ |
demekki convert ettiğinde sayı 30.55315392 olmuyor. x değişkenini karşılaştırma yapmadan önce bi yere yazdır bak hangi sayı olduğuna. Ayrıca çevirme yapmasan dahi double/float değişkenler her zaman atadığın sayıyı almayabiliyorlar. Mesela float a = 4.0000010; verdin diyelim. 4.0000009 olabilir. Hem sen neden bu kadar hassas bir karşılaştırma yapıyosun. Yazılımda gerçekten buna ihtiyacın olduğuna emin misin? |
hasan'ında dediği gibi bu kadar ince sayılar kullanman yanlış. Önce şunu dene.. Ayrıca büyük-küçük harflere dikkat etmiyorsun.
Eğer bu olmazsa, 2.satırdaki yeri şöyle dğeiştir. Kusura bakma burada şu an Visual Studio yok :(. double x = Convert.ToDouble(xx.ToString()); |
navigasyon sistemi yapıyorum koordinatlarda hassas olmak zorundayım ;) |
demin arkadaşa da yazdığım gibi navigasyon sistemi yapıyorum koordinatlarla çalışıyorum normalde bu sayılar daha uzun ben bu kadara indirebildim dahası kabul edilmiyor.neden yanlış olsunki? izmiri balıkesir diyemi alsın sonra büyük küçük harfe direk forma yazdığım için dikkat etmedim zaten sorunumuda hallettim. yinede tşkler |
Önemli değil.. Keşke yazsaydın navigasyon sistemleri yazıyorum diye.. Hep merak etmişimdir. Algoritması nasıl bu sistemelrin ? |
Karmakarışık...giriştik bi kere bu işe bakalım sonumuz hayrolsun |
Evet internetten baktımda cidden çok karışık bir iş. Allah yardımcın olsun. |
Koordinatlar ve ince ayrıntıyla uğraşıyorsan direk string üzerinden çalış veya; KOORDİNATLARI hafızada tutarken katsayılarla çarp örneğin, 30.55315392 koordinatını hafızaya atarken 1000 ile çarparsan veya daha büyük bir katsayıyla virgülden sonraki kısım azalacağı için hata payı azalır. 30553.15392 Yani önünde iki seçenek var; 1- string 2- Katsayı |
if(x.Equals(30.55315392)){ } şeklinde dene, navigasyon sistemlerinde yaklaşım aralığı kullanılır. sayın 30.55315392 iken karşılaştırma aralığın 2 basamak sağdan kırpıp bir altı bir üstü ile test etmelisin. 30.553154 ve 30.553152 aralığında mı kontrol edersin. Zaten GPS sıfır hata ile okuma yapmaz. Bu kadar hassasiyetli yazılım seni sonuca götürmez. |
Yıllar sonra hortlatıyorum. Region değiştirince düzeldi. English (US) yaptım. |
1. sayfa
Bu mesaja 2 cevap geldi. Cevapları Gizle