Aldığın değeri cint fonksiyonundan geçir sorunun kalmıcak. edit/// cint olmaz virgülle işlem yapıyosun :D yazarım buraya by_Tet tarafından 24/Nis/14 08:29 tarihinde düzenlenmiştir iyibu! yeniden..

Mssql de veri tipini float yaparak kurtuldum bu lanet hatadan. Enlem boylam bilgileri ile işlem yapacaksanız, geometry veya geography veri tipi ile uğraşmayın derim. Float ;) Şimdi ama o veri tipleri ile uğraşmayın deme :) O tipler desteklenen sağlayıcılarla veya doğrudan t-sql içinde elzem olabiliyor. Tabi sen ASP için doğru olanı yapmışsın. Hem ASP, hem de doğal olarak uyumlu olduğu veri sağlayıcılar / sürücüler eski olduklarından ileriye dnük uyumlulukları olmayabiliyor. Aslında bu sağlayıcıların hala yeni sürümleri de çıkıyor çıkmasına ama yerelde çalıştırmak da marifet değil. Ürün ortamında sağlayıcının yeni sürümü yoksa yine oturup kalıyoruz. ASP ile Windows 2003 sonrası her IIS üzerinde adam gibi çalışacak bir uygulama geliştirmek için SQL Server 2005'den sonra icat olunan veri tiplerini kullanmamakta fayda var. anlıyorum.

Mssql de veri tipini float yaparak kurtuldum bu lanet hatadan. Enlem boylam bilgileri ile işlem yapacaksanız, geometry veya geography veri tipi ile uğraşmayın derim. Float ;) seni 4 kere dverim yarın

l1 = 39.84585l2 = 40.44019l3 = 40.6882l4 = 44.7497 distance(l1, l2, l3, l4, "K") Şeklinde kullandığımda, mesafe hesaplama fonksiyonu doğru sonuç gnderiyor. Fakat dbden çektiğim aynı verileri gnderdiğimde saçma sapan işlem sonuçları geliyor. Nedeni nedir acaba bir türlü çzemedim, double, single veri tiplerini denedim ama bir türlü sonuca ulaşamadım. Yani fonksiyondan değilde, veri tipinden kaynaklandığını düşünüyorum. Çünkü db den çekmediğim sürece bir problem yok. DB'den çektiğimi yukarıdaki tipte değişkene nasıl gnderebilirim? Yada gelen veriyi değişkene atadıktan sonra, veri tipini yok etmem lazım. Tırnak koyunca bile string olarak gidiyor fonksiyona saçmalıyor. Benim beyin iptal. Fonksiyon da şyle, const pi = 3.14159265358979323846 Function distance(lat1, lon1, lat2, lon2, unit) Dim theta, dist theta = lon1 - lon2 dist = sin(deg2rad(lat1)) sin(deg2rad(lat2)) + cos(deg2rad(lat1)) cos(deg2rad(lat2)) cos(deg2rad dist = acos dist = rad2deg distance = dist 60 1.1515 Select Case ucase Case "K" distance = distance 1.609344 Case "N" distance = distance 0.8684 End Select End Function Function acos If Abs <> 1 Then acos = pi/2 - Atn(rad / Sqr(1 - rad rad)) ElseIf rad = -1 Then acos = pi End IfEnd function seni 4 kere dverim yarın