Öncelikle hepinize vakit ayırıp cevap verdiğiniz için teşekkür ederim.
Size biraz daha açıklayıcı olabilmek adına aslında kendimi geliştirmek adına hesap makinesi yapıyorum. İstediğim şeyde şu iki tane textview var eğer bu textview lerden birinde virgüllü sayı var isi ikisinide double olarak görüp işlem yapması. Eğer iki textview 'da da virgülsüz sayı yok ise bu seferde long olarak görüp kullanıcıya normal bir sonuç getirmesi. Çünkü kimse5 ile 2 yi topladığında sonucu 7.0 olarak görmek istemez. 5 ile 2,5 toplandığında ise 7.5 olarak virgül koyulabilmesi için kodun en üst kısmında for ile textview ların kontrolünü sağlattım ve eğer her ikisinden birinde virgüllü sayı var ise double olarak işlem yapmasını virgüllü sayı yoksa her ikisinde de long olarak işlem yapmasını sağlattım. Şimdi android stduio 'da log kayıtlarına baktığımda ise aşağıda vermiş olduğum linkte kodları paylaştım. Toplama işlemi yaptım mesela birinci textview 'e 5 ikincisine 3,5 girdim ve program kapandı log kayıtlarında ise size aşağıda vermiş olduğum linkte ki 48 inci satır hatalı gösterdi.
sayac 0 'lı if bloğunu yorum satırı içine aldım ve çalışmamasını sağlayıp bu sefer tekrar 6 ile 2.8 i toplattım bu sefer çalıştı ve bana sonucu 8.8 olarak döndürdü.
Eşittir butonun kodları :
https://ideone.com/K7YLnJ
bir sayı tam sayı ise virgülsüz, değilse virgüllü olmasını göstermenin en pratik yolu dönüşümlerden geçer
kodda yapılan mantık oldukta basit.
2 tane sayıyı float (veya double fark etmez) cinsine çevirtip bir sayıya aktarılıyor.
ardından bu iki sayı toplanıp integere çeviliyor (örnekte 9.2 sayısı 9'a çevrilmiş)
ardından bu integer olan 9 sayımızı tekrar floata çevirtiyoruz.
en son aşamada elimizde iki adet float sayı var. biri virgüllerinden arınmış olan 9.0 sayısı var, diğeri ise 9.2 yi gösteriyor.
9.0 ile 9.2 nin arasındaki eşitliğe bakıyoruz ve diyebiliyoruz ki bunlar eşit değil. yani aslında bu sayı bir virgüllü sayı.
textbox'a sonuç yazdırırken sonucunun bulunduğu float değişkenini stringe dönüştürüp texte aktar
ya da iki sayı eşit olduğunda integerdan gelen sayıyı stringe çevir ve texte aktar.
bunun daha kısayol bir çözümü var mı bilmiyorum. eğer bilen biri varsa beni aydınlatsın