Selamlar
dxmemtable içerisinde ftfloat olarak bir alan açıyorum
açtığım alana (alan = 0.01) olarak değer atıyorum
daha sonra bu alanı
if memtable.fieldbyname(alan).asfloat = 0.01 yada
if memtablealanadi.asFloat = 0.01 dediğimde doğruluk sağlanmıyor
fakat
if StrToFloat(FloatToStr(memtablealanadi.asFloat)) = StrToFloat(FloatToStr(0.01)) dersem doğruluk sağlanıyor
sizce sorun ne olabilir.
iyi çalışmalar
Float alan karşılaştırmada sorun
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- adelphiforumz
- Üye
- Mesajlar: 602
- Kayıt: 01 Nis 2008 05:38
- Konum: İstanbul
Float alan karşılaştırmada sorun
Ehil olmayanlara sabretmek ehil olanları parlatır.
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Akıllı birisinden gelen cefa, bilgisizlerin vefasından iyidir.
Bilgiye ulaştı mı ayak, kanat olur
Biz insanı kıyafetiyle ağırlar bilgisiyle uğurlarız.
Mevlana
Re: Float alan karşılaştırmada sorun
Merhaba,
dxmemtable ile ilgili internette pek kaynak bulamadım. İlgili sayfa linki verebilir misiniz?
Test açısından aşağıdaki durumda doğruluk sağlanıyor mu acaba?
dxmemtable ile ilgili internette pek kaynak bulamadım. İlgili sayfa linki verebilir misiniz?
Test açısından aşağıdaki durumda doğruluk sağlanıyor mu acaba?
Kod: Tümünü seç
if StrToFloat(FloatToStr(memtablealanadi.asFloat)) = 0.01 then ShowMessage('evet') else ShowMessage('hayır');
Re: Float alan karşılaştırmada sorun
.asfloat değeri kontrol ettin mi? yani 0.01 den sonra yani 0.010000000008 gibi bir değer geliyor olabilir. ayrıca sabit bir değer yani '0.01' ile karşılaştıracaksan, .Asstring ile karşılaştırabilirsin. TField çeviriyi yapıyorken, benim alanım float illaki asfloat ile erişirim demeyin.
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: Float alan karşılaştırmada sorun
Real tipli ondalıklı sayı tiplerinde derinlerde bir yerde genellikle fark meydana gelmektedir. Bu gibi durumlarda bir yerden sonrasını ihmal etmekte fayda vardır. Mesela Currency tipinde bu iş otomatik olarak ondalıklı kısımdan 5-6 haneden sonrasını yuvarlamakta veya atmaktadır. O yüzden Currency tipli değişkene sonuç hesaplatıp, kıyaslamayı bunun üzerinden yapabilirsiniz.
Kod: Tümünü seç
var cVal:Currency;
begin
...
...
...
cVal:=memtable.fieldbyname(alan).asfloat-0.01;
if cVal=0 then ShowMessage('evet') else ShowMessage('hayır');
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .