FilemakerTurk, AYS Bilişim ve Beyaz Net tarafından desteklenmektedir.
Filemaker Danışmanınız
AYS Bilişim
Mehmet KAYA
 0532 231 07 27
 0216 318 55 80
 mkaya@aysbilisim.net
						

En yakın 5 ile biten sayıya yuvarlama

0 oy
1,564 kez görüntülendi
Arkadaşlar merhaba.

 

Yukardaki formüllerin tamamını denedim. en yakın 5 ile biten sayıya ortalama almaya çalışdım (10 olan yerleri 5 yaparak) ama bazen çok saçma bir şekilde uzak tarafa ortaladı

bir aydat filed ım var bunu 30 a bölüp günlük ücreti buluyorum. sonra günlük hizmet süresini 30 girdiğimde bazen aidat ile sonuç arasında fark çıkıyor. örneğin aidat 110 diyorum. günlüğü 3,6666666666666667 hesaplıyor 30 la çarpıp cari diye bir field a sonuç alıyorum sonuç 110,000000000000001 çıkıyor ve onuda 115 e yuvarlıyor

 

Round ( cari; -1) bu formül en yakın sayıya 10 ve katları şeklinde yuvarlıyor. yani 94 ü 90 a 96 yı 100 e yuvarlıyor bunu 95 e yuvarlama şansımız yokmudur acaba
25, Ağustos, 2016 Scripts kategorisinde OrhanSarı (4,270 puan) tarafından soruldu
25, Ağustos, 2016 OrhanSarı tarafından düzenlendi

2 Cevaplar

+1 oy
 
En İyi Cevap

Benzer hesaplamaya benim de ihtiyacım olmuştu. Şöyle pratik bir yol buldum; Sayının iki katını 10'un katına yuvarlayıp sonra ikiye geri bölerseniz 5'in katına yuvarlamış olursunuz.
 

Round ( Sayi * 2 ; -1 ) / 2

25, Ağustos, 2016 F. Osman Cabi (197,920 puan) tarafından cevaplandı
26, Ağustos, 2016 Şemsi Saracoğlu tarafından seçilmiş
Doğru yaaa. Kesinlikle çok daha pratik ve mantıklı. Carideki 0.5 lik eksi işlemi ilerde belki başka sorun çıkarır siye endişelerim vardı sayende kurtuldum. Çok teşekkürler. Yarın yukardaki geçici çözümü hemen bununla düzelteyim.
0 oy
Güne bölüp 30 ile çarpmanızı anlamadım. Bilgi maksatlı bölünebilir fakat bu şekil hesaplama ile doğru sonuca varmak çok zor.
25, Ağustos, 2016 Goksel_Gokce (96,900 puan) tarafından cevaplandı
Hocam aidat hesaplama ile alkalı bir ihtiyaç. aidatı örnek olarak 100 tl olan bir hizmet tüm ay düzenli devam etmişse sorun yok. ancak 20 gün sonra kesilmişse carisini alabilmek için günlük maaliyeti 20 ile çarpıp ona göre 20 günlük yeni bir rakam belirlemem gerekiyor. Çıkan sonuçlar genellikle küsüratlı çıkıyor. kesirli sonuçları tam sayıya yuvarlama işini hallettim.
Round ( cari; 0) formülü ile tam sayı olarak sonucu alıyorum.
Round ( cari; -1) formülü ile ise 10 ve katları olarak sonuç veriyor. yani 23 çıkarsa 20 ye 26 çıkarsa 30 a yuvarlıyor. bunu 25 e yuvarlayacak bir formül arıyorum ama bir türlü işin içinden çıkamıyorum.
Ceiling ( sayi / 5 ) * 5 formülünde sonucu 5 ve katları olarak alabildim ama bu seferde hizmet süresini 30 gün girdiğimde sonuçdaki binde bir fazlalığı bile yukarı yuvarlayarak aidatı 100 tl olan işin carisini 105 veriyor
İlk yorumu yazdıkdan sonra aklıma başka bişey geldi
günlük ücret x hizmet süresi formülünü parentez içine alıp sonuna -0,5 koydum ve şu anda işimi görecek hale geldi. yani o binde birlik küsarıtı cari soncundaki -0,5 işlemi ile kurtardım. daha deneyimli arkadaşlar daha mantıkli bir sonuç üretir mutlaka ama bu hali benim işimi gördü benzer şeylere ihtiyacı olan olursa diye formülü tam yazayım

bir field aidat (number)
bir field günlük maaliyet  (calcilator) aidat / 30
bir field hizmet süresi (number) ay içinde çalışılan gün sayısı elle giriliyor
bir field cari (calcilator) (günlük maaliyet * hizmet süresi)-0,5
bir field sonucu yuvarlayarak vermek için (calcilator) Ceiling ( cari / 5 ) * 5

şimdilik bu hali ile işimi görüyor
Cikan sonucu int() cevirin. Noktadan sonrasini aticaktir. Tlfdayim. Text fonksiyonlari ile son rakami atin yerine 5 koyun. Lengt() ile uzinlugu alin 1 cikartin ve leftvalues() ile son rakami atmis olarsunuz. Aklimda kaldigi kadari ile yaziyorum. Matematik islemleri ile yaptirmaya calismayin text islemleri daha kolay olur
...