Floating point ile matematiksel işlemler

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Floating point ile matematiksel işlemler

Mesaj gönderen Salih »

Kod: Tümünü seç

  DEToptutar2.Text := FloatToStrf(StrToFloat(StripCommas(DEToptutar.text)) - StrToFloat(StripCommas(DEIskTutar2.text)),ffnumber,12,2);

Kod: Tümünü seç

Detoptutar2 := Detoptutar - DEisktutar  !!!  
Eskiden hayat ne kolaymış meğer !! Hocam, bu floating point alanlarla çalışmak bu kadar zor mu , yoksa başka yolu var da ben mi bilmiyorum ?

StrToFloat fonksiyonu 999 dan büyük, yani virgüllü rakamlarda hata veriyor diye StripCommas diye bir fonksiyon yazdık, hallettik.
Hadi StrToFl diye bir fonksiyon yazalım, kendi içinde StrToFloat(StripCommas) olayını halletsin :

Kod: Tümünü seç

  DETopTutar2.Text := FloatToStrf(StrToFl(DEToptutar.Text)) - StrToFl(DEIskTutar2.text),ffnumber,12,2);
Eh, epeyce kısaldı :) Peki benim bilmediğim daha kısa yolları var mı bu işin ? Bir sürü floating pointli işlem yapıyorum da
Sevgi, Saygı.....
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
strtofloat yerine currtostr kullanmayı denedinmi.
birde bölgesel ayarlarındaki ondalık vi bindelik ayıraçlarını kontrol et. senin textinde kullandığın ile aynı olması lazım. aksi halde currtostr den verim alamayabilirsin.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Mesaj gönderen Salih »

aslangeri yazdı:S.A.
strtofloat yerine currtostr kullanmayı denedinmi.
birde bölgesel ayarlarındaki ondalık vi bindelik ayıraçlarını kontrol et. senin textinde kullandığın ile aynı olması lazım. aksi halde currtostr den verim alamayabilirsin.
Kolay gelsin.
FloatToStr yerine currTostr kullanmayı da denedim, ama satırı asıl uzatan daha sonraki kısım, yani önce her iki string'i floating point'e çevir, çıkarma, toplama vs işlemini yap, sonra tekrar floating point'i al string'e çevir, olay bu nedenle uzuyor.
Sevgi, Saygı.....
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

veriler üzerinde direk işlem yapsanız.

Table1.FieldByName('FLOAT_ALAN_ADI').AsFloat

gibi. Değilse Float değeri direk alıp, işleyeceğiniz bir Edit kullanmanızda daha iyi olacaktır. Misal : THusoEdit :)

Kolay gelsin.
Salih
Üye
Mesajlar: 250
Kayıt: 11 Mar 2004 05:36

Mesaj gönderen Salih »

Husoedit'i de kullanıyorum, veriler üzerinden de yapıyorum, Ama matematiksel işleri uzuuun uzun yazmadan kullanmanın bir yolu yok heralde.
ya da küçük fonksiyonlar yazarız :
Ftopla(sayi1,sayi2,sonuc) , Icikar(sayi1,sayı2,sonuc) vs vs gibi...
Sevgi, Saygı.....
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

yöntem çok tabii. Nasıl kolayınıza geliyorsa. ama eğer bu işlemleri çok yapacakcanız, uygun fonksiyonlar oluşturmanızı ben de tavsiye ederim.

Kolay gelsin.
Cevapla